@function __base-values($map, $props) {
  $index: 1;
  $length: length($props);
  $result: ();

  @while ($index <= $length) {
    $result: append($result, __get($map, nth($props, $index)));

    $index: $index + 1;
  }

  @return $result;
}

@function __values($map) {
  @return __base-values($map, __keys($map));
}

@function __values-in($map) {
  @return __base-values($map, __keys-in($map));
}

/// Creates a list of the own enumerable property values of `$map`.
///
///
/// @access public
/// @group Map
/// @param {Map} $map The map to query.
/// @returns {List} Returns the list of property values.
/// @example scss
/// // todo

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

/// Creates a list of the own and inherited enumerable property values
/// of `$map`.
///
///
/// @access public
/// @group Map
/// @param {Map} $map The map to query.
/// @returns {List} Returns the list of property values.
/// @example scss
/// // todo

@function _values-in($args...) {
  @return call(get-function("__values-in"), $args...);
}
