def map_merge(map1, map2)
      assert_type map1, :Map, :map1
      assert_type map2, :Map, :map2
      map(map1.to_h.merge(map2.to_h))
    end
def map_merge(map1, map2)
      assert_type map1, :Map, :map1
      assert_type map2, :Map, :map2
      map(map1.to_h.merge(map2.to_h))
    end
Merges two maps together into a new map. Keys in `$map2` will take
 precedence over keys in `$map1`.

 This is the best way to add new values to a map.

 All keys in the returned map that also appear in `$map1` will have the
 same order as in `$map1`. New keys from `$map2` will be placed at the end
 of the map.

 Like all map functions, `map-merge()` returns a new map rather than
 modifying its arguments in place.

 @example
   map-merge(("foo": 1), ("bar": 2)) => ("foo": 1, "bar": 2)
   map-merge(("foo": 1, "bar": 2), ("bar": 3)) => ("foo": 1, "bar": 3)
 @overload map_merge($map1, $map2)
   @param $map1 [Sass::Script::Value::Map]
   @param $map2 [Sass::Script::Value::Map]
 @return [Sass::Script::Value::Map]
 @raise [ArgumentError] if either parameter is not a map