* Stuff
** DONE group_by default function
** DONE group_by_count
** DONE group_by_array
** DONE Remove special subs
**** DONE docs
** DONE Fix throw, remove lib
** DONE Release
** DONE Deprecate Array::Transform, point to new
** DONE map_by, grep_by, group_by hash key lookup
*** if first item is ref HASH
** grep_by - value
** [#A] group (group_count)
*** group_array
** sort
** find(sub), like grep
** find_by($method, $args, $value), like grep_by but first
** contains value
** compact - without undefined
** compactTrue - without false
** without - grep -v value
** grep --> filter
*** so I can write "grep" instead of autobox::Core
*** deprecate grep, but keep the alias
*** get going with the grep --> filter, so we can use nothing (true), string eq, regex or subref.
*** Leave the old implementation behind, but deprecate it and only briefly mention it in the docs.
** grep, grep_by third arg more dwim
*** third arg sub (defaults to true)
**** if string, do eq
**** if regex, do =~
** enforce scalar / list context, to ref / array, hash
** DONE Also, coerce to scalar context / reference.
*** to_ref / as_ref
*** to_list, as_list
*** as_hash, as_array, as_ref
** map_each_value_by - replace the hashref/object value with the result of map_by
** group
** group_count
** group_array
** new format
While doing the rename to filter, can we introduce the ["accessor",
@args] format too? Just special case it, so if the first is an
arrayref, use that format.
** DONE use autobox::Core inside Transform
*** use autobox::Core, so we can use e.g. split
*** Provide this as a parameter with core as the default?
** TODO sub uplevel or whatnot
*** so warnings and dies are reported from the caller.
** Fix method with args syntax
*** DONE methods
**** DONE map_by
**** DONE grep_by
**** DONE uniq_by
**** DONE group_by
**** DONE group_by_count
**** DONE group_by_array
*** tasks
**** DONE fix
**** DONE document new style
**** DONE changes
**** DONE release
**** DONE change docs to new style
***** DONE document old style
***** DONE deprecate old style
****** DONE document plan for 2.0.0
**** release
** Document the gems form core
*** elements
**** avoid ugly deref punctuation
*** length
*** strip
**** better chomp
* Hash
** DONE key_value($key, $new_key_name=$key) : ($new_key_name => $value) | { $new_key_name => $value }
*** exists
*** exists, undef
*** doesn't exist, undef
** DONE key_value_if_exists($key, $new_key_name=$key) : ($new_key_name => $value) | { $new_key_name => $value }
** DONE key_value_if_true($key, $new_key_name=$key) : ($new_key_name => $value) | { $new_key_name => $value }
** DONE key_value_if_defined($key, $new_key_name=$key) : ($new_key_name => $value) | { $new_key_name => $value }
** keys_value* to support multiple pairs
*** if there are more than one arg, assume they are pairs
** map family
*** map hash -> array
**** [#A] map_each_to_array($subref)
***** ($key, $value), $_ is value
****** return value (or die) to be list item
***** return array with return values
*** map hash -> hash
**** map_each($subref)
***** ($key, $value), $_ is value
****** return new key, new value (or die)
***** return hash with return values
**** map_each_value($subref, $new_key = $key)
***** ($key, $value), $_ is value
****** return new value
***** return hash with same key, return value
**** map_each_value_by($accessor, $new_key = $accessor) maps values from one thing to another
***** (key, $value, $accessor_value), $_ is accessor_value
****** return new value
***** return hash with same keys + $new_key = return value
**** map_by ?
** grep family
*** grep -> hash
**** [#A] grep_each($subref = true)
***** ($key, $value), $_ is value
**** [#B] grep_each_defined
***** value is defined
**** grep_each_by($accessor, $args?, $subref = true)
***** ($key, $value, $accessor_value), $_ is accessor value
**** grep_each_by_defined
***** accessor value is defined
* DOCS
** Operate on an array of scalars
*** TODO grep_true
*** TODO grep_defined
*** flat
*** TODO group
*** TODO group_count
*** TODO group_array
** Operate on a hash
*** map_each
*** map_each_value
*** map_each_to_array
*** grep_each
*** TODO grep_each_true
*** grep_each_defined
*** key_value
*** key_value_if_true
*** key_value_if_defined
*** key_value_if_exists
** Operate on an array of hashrefs/objects
*** map_by
*** grep_by
*** TODO grep_by_true
*** TODO grep_by_defined
*** uniq_by
*** group_by
*** group_by_array
*** group_by_count
** Operate on a hash with hashref/object values
*** TODO map_each_value_by
*** TODO grep_each_value_by
*** TODO grep_each_value_by_true
*** TODO grep_each_value_by_defined
