   end
 
   @doc """
-  Returns a new collection, where each item is the result
-  of invoking `fun` on each corresponding item of `collection`.
+  Returns a list where each item is the result of invoking
+  `fun` on each corresponding item of `enumerable`.
 
   For dicts, the function expects a key-value tuple.
 

  end

  @doc """
  Returns a random element of a collection.
  Raises `EmptyError` if the collection is empty.

  Notice that you need to explicitly call `:random.seed/1` and
  set a seed value for the random algorithm. Otherwise, the


  """
  @spec take_random(t, integer) :: list
  def take_random(_enumerable, 0), do: []

  def take_random(enumerable, count) when count > 128 do
    reducer = fn(elem, {idx, sample}) ->
      jdx = random_index(idx)
      cond do
