 
       Enum.map [1,2,3], fn(x, do: x * 2)
 
+  Depending on the type of the collection, the user-provided function will
+  accept a certain type of argument. For dicts, the argument is always a
+  { key, value } tuple.
+
   You can also use a custom iteration function for any collection by passing it
   along with the head of iteration:
 


  @doc """
  Invokes the given `fun` for each item in the `collection` and returns true if
  at least one invocation returns true.  Returns false otherwise.

  ## Examples


    #
    # `ctor` is a constructor function that takes a list of elements and
    # produces a new enumerable of the same type as the initial one.
    #
    # The :stop atom is mandatory, it signifies the end of the iteration.
    { :stop, ctor, nil}
  end
end
