*********************
The collectors Module
*********************

.. current-library:: collections
.. current-module:: collectors

.. macro:: collect

.. macro:: collect-first

.. macro:: collect-first-into

.. macro:: collect-into

.. macro:: collect-last

.. macro:: collect-last-into

.. macro:: collected

.. macro:: collecting

.. generic-function:: collector-protocol
   :open:

   :signature: collector-protocol *class* => *new-collector add-first add-last add-sequence-first add-sequence-last collection*

   :parameter class: An instance of :drm:`<object>`.
   :value new-collector: An instance of :drm:`<object>`.
   :value add-first: An instance of :drm:`<function>`.
   :value add-last: An instance of :drm:`<function>`.
   :value add-sequence-first: An instance of :drm:`<function>`.
   :value add-sequence-last: An instance of :drm:`<function>`.
   :value collection: An instance of :drm:`<function>`.

