Improves the Arrays.Protocol to be more friendly to implement. Specifically:
- Remove implementations for
Access.pop. Instead, throw an error when people try to use it. - Similarly, throw an error when
:popis used insideAccess.get_and_update - Move
emptyfromAccess.BehaviourtoAccess.Protocol. - Alter handling of
:default. It is no longer a required setting, and all arrays are able to work with adefaultpassed toresize. - Related to above: Replace
Arrays.Protocol.resize/2withArrays.Protocol.resize/3. (Arrays.resize/2will call it withnilas third parameter). sizeis no longer a required setting.Arrays.new/2andArrays.empty/1have been edited to reflect this.
Improved tests, documentation, code examples.
Also, there now is some comprehensive benchmarking code that compares the various array implementations.