 
   """
   @spec concat(t) :: t
-  def concat(enumerables) do
-    fun = &[&1 | &2]
-    enumerables |> reduce([], &reduce(&1, &2, fun)) |> :lists.reverse()
+  def concat(list) when is_list(list) do
+    concat_list(list)
+  end
+
+  def concat(enums) do
+    concat_enum(enums)
   end
 
   @doc """

    false
  end

  # dedup

  defp dedup_list([value | tail], acc) do

  end

  def concat(left, right) do
    concat_enum([left, right])
  end

  @doc """
