   end
 
   # Until we have to stop iteration, then we return acc.
-  defp do_join({ :stop, _, _ }, _, _joiner, acc) do
+  defp do_join(:stop, _, _joiner, acc) do
     acc
   end
 


  """
  def filter_map(collection, filter, mapper) do
    { iterator, pointer } = I.iterator(collection)
    filter_map(iterator, pointer, filter, mapper)
  end

  def filter_map(iterator, pointer, filter, mapper) do
    do_filter_map(pointer, iterator, [], filter, mapper)
  end

  @doc """


  """
  def take_while(collection, fun // fn(x, do: x)) do
    { iterator, pointer, ctor } = O.ordered_iterator(collection)
    do_take_while(pointer, iterator, fun, [], ctor)
  end

  @doc """
