       #=> 6
 
   """
-  def reduce(collection, acc, f) when is_list(collection) do
-    :lists.foldl(f, acc, collection)
-  end
-
-  def reduce(collection, acc, f) do
-    { iterator, pointer } = I.iterator(collection)
-    reduce(iterator, pointer, acc, f)
-  end
-
-  def reduce(iterator, pointer, acc, f) do
-    do_reduce(pointer, iterator, acc, f)
+  def reduce(collection, acc, fun) when is_list(collection) do
+    :lists.foldl(fun, acc, collection)
+  end
+
+  def reduce(collection, acc, fun) do
+    { iterator, pointer } = I.iterator(collection)
+    reduce(iterator, pointer, acc, fun)
+  end
+
+  def reduce(iterator, pointer, acc, fun) do
+    do_reduce(pointer, iterator, acc, fun)
   end
 
   @doc """

  @doc """
  Invokes the given `fun` for each item in the `collection`
  while also keeping an accumulator. Returns a tuple where
  the first element is the iterated collection and the second
  one is the final accumulator.

  ## Examples

  end

  @doc """
  Invokes `fun` for each element in the collection passing the accumulator
  `acc` and the element as arguments. The return value is stored in `acc`.
  Returns the accumulator.

  ## Examples
