--- /dev/null
+package Moose::Meta::Method::Accessor::Native::Hash::grep_keys;
+
+use Moose::Role 1.15;
+
+with
+ 'Moose::Meta::Method::Accessor::Native::Array::grep' => {
+ -excludes => [qw{ _return_value }],
+ -alias => { _return_value => '_array_return_value' },
+ },
+ 'Moose::Meta::Method::Accessor::Native::Hash',
+ ;
+
+sub _return_value {
+ my ($self, $slot_access) = @_;
+
+ return $self->_array_return_value("[ keys %{ $slot_access } ]");
+}
+
+no Moose::Role;
+
+1;
--- /dev/null
+package Moose::Meta::Method::Accessor::Native::Hash::grep_values;
+
+# return the sorted list of keys to the hash, a la:
+#
+# grep { ... } values %$hash
+
+use Moose::Role 1.15;
+
+with
+ 'Moose::Meta::Method::Accessor::Native::Array::grep' => {
+ -excludes => [qw{ _return_value }],
+ -alias => { _return_value => '_array_return_value' },
+ },
+ 'Moose::Meta::Method::Accessor::Native::Hash',
+ ;
+
+sub _return_value {
+ my ($self, $slot_access) = @_;
+
+ return $self->_array_return_value("[ values %{ $slot_access } ]");
+}
+
+no Moose::Role;
+
+1;
--- /dev/null
+package Moose::Meta::Method::Accessor::Native::Hash::map_keys;
+
+# return the sorted list of keys to the hash, a la:
+#
+# map { ... } keys %$hash
+
+use Moose::Role 1.15;
+
+with
+ 'Moose::Meta::Method::Accessor::Native::Array::map' => {
+ -excludes => [qw{ _return_value }],
+ -alias => { _return_value => '_array_return_value' },
+ },
+ 'Moose::Meta::Method::Accessor::Native::Hash',
+ ;
+
+sub _return_value {
+ my ($self, $slot_access) = @_;
+
+ return $self->_array_return_value("[ keys %{ $slot_access } ]");
+}
+
+no Moose::Role;
+
+1;
--- /dev/null
+package Moose::Meta::Method::Accessor::Native::Hash::map_values;
+
+# return the sorted list of keys to the hash, a la:
+#
+# map { ... } values %$hash
+
+use Moose::Role 1.15;
+
+with
+ 'Moose::Meta::Method::Accessor::Native::Array::map' => {
+ -excludes => [qw{ _return_value }],
+ -alias => { _return_value => '_array_return_value' },
+ },
+ 'Moose::Meta::Method::Accessor::Native::Hash',
+ ;
+
+sub _return_value {
+ my ($self, $slot_access) = @_;
+
+ return $self->_array_return_value("[ values %{ $slot_access } ]");
+}
+
+no Moose::Role;
+1;
--- /dev/null
+package Moose::Meta::Method::Accessor::Native::Hash::sort_keys;
+
+# return the sorted list of keys to the hash, a la:
+#
+# sort keys %$hash
+
+use Moose::Role 1.15;
+
+with
+ 'Moose::Meta::Method::Accessor::Native::Array::sort' => {
+ -excludes => [qw{ _return_value }],
+ -alias => { _return_value => '_array_return_value' },
+ },
+ 'Moose::Meta::Method::Accessor::Native::Hash',
+ ;
+
+sub _return_value {
+ my ($self, $slot_access) = @_;
+
+ return $self->_array_return_value("[ keys %{ $slot_access } ]");
+}
+
+no Moose::Role;
+1;
--- /dev/null
+package Moose::Meta::Method::Accessor::Native::Hash::sort_values;
+
+# return the sorted list of values to the hash, a la:
+#
+# sort values %$hash
+
+use Moose::Role 1.15;
+
+with
+ 'Moose::Meta::Method::Accessor::Native::Array::sort' => {
+ -excludes => [qw{ _return_value }],
+ -alias => { _return_value => '_array_return_value' },
+ },
+ 'Moose::Meta::Method::Accessor::Native::Hash',
+ ;
+
+sub _return_value {
+ my ($self, $slot_access) = @_;
+
+ return $self->_array_return_value("[ values %{ $slot_access } ]");
+}
+
+no Moose::Role;
+
+1;