@function __modify(
  $map,
  $properties,
  $function: "__identity",
  $this-arg: null
) {
  $value: __get($map, $properties);

  $function: __get-callback($function, $this-arg, 3);

  $result: __exec($function, $value, $properties, $map);

  $map: __set($map, $properties, $result);

  @return $map;
}

@function _modify($args...) {
  @return call(get-function("__modify"), $args...);
}
