   end
 
   @doc """
-  Reduces over all enumerables halting if the accumulator returns `{:halt, value}` or if
-  any of the enumerables is empty.
-
-  The reducer will receive 2 args, a list of the yielded elements and the accumulator.
-  It should return one of:
+  Reduces over all enumerables halting if the accumulator returns
+  `{:halt, value}` or if any of the enumerables is empty.
+
+  The reducer will receive 2 args, a list of the yielded elements
+  and the accumulator. It should return one of:
 
     * `{:halt, value}` - This will halt the reduction and return `value`
-    * `{:cont, value}` - This will continue with the next step of the reduction.
-
-  ## Zipping Maps
-
-  It's important to remember that zipping inherently relies on order. If you zip two lists you get
-  the element at the index from each list in turn. If we zip two maps together it's tempting to
-  think that you will get the given key in the left map and the matching key in the right map, but
-  there is no such guarantee because map keys are not ordered! Consider the following:
-
-      left =  %{:a => 1, 1 => 3}
-      right = %{:a => 1, :b => :c}
-      Enum.zip(left, right)
-      # [{{1, 3}, {:a, 1}}, {{:a, 1}, {:b, :c}}]
-
-  As you can see `:a` does not get paired with `:a`. If this is what you want, you should use
-  `Map.merge/3`
+    * `{:cont, value}` - This will continue with the next step of the reduction
 
   ## Examples
 

  end

  @doc """
  Reduces a over two enumerables halting as soon as either enumerable is empty.

  ## Zipping Maps

  It's important to remember that zipping inherently relies on order. If you zip two lists you get
  the element at the index from each list in turn. If we zip two maps together it's tempting to
  think that you will get the given key in the left map and the matching key in the right map, but
  there is no such guarantee because map keys are not ordered! Consider the following:

      left =  %{:a => 1, 1 => 3}
      right = %{:a => 1, :b => :c}
      Enum.zip(left, right)
      # [{{1, 3}, {:a, 1}}, {{:a, 1}, {:b, :c}}]

  As you can see `:a` does not get paired with `:a`. If this is what you want, you should use
  `Map.merge/3`

  ## Examples

      iex> Enum.zip_reduce([1, 2], [3, 4], 0, fn x, y, acc -> x + y + acc end)
      10

      iex> Enum.zip_reduce([1, 2], [3, 4], [], fn x, y, acc -> [x + y |acc] end)
      [6, 4]
  """
  @doc since: "1.12.0"

  The reducer will receive 2 args, a list of elements (one from each enum) and the
  accumulator.

  ## Examples

      iex> enums = [[1, 1], [2, 2], [3, 3]]
