def deep_merge(a, b)
      merge = proc { |_, old, new|
        if old.is_a?(Hash) && new.is_a?(Hash)
          old.merge(new, &merge)
        else