       #=> { [2], [1,3] }
 
   """
+  @spec partition(t, fun(element, do: any)), do: {t, t}
   def partition(collection, fun) when is_list(collection) do
     do_partition(collection, fun, [], [])
   end

      Enum.count [1,2,3] #=> 3

  """
  def count(collection) do
    I.count(collection)
  end

  @doc """
  Counts for how many items the function returns true.
  """
  @spec count(t, fun(element, do: boolean)), do: non_neg_integer
  def count(collection, fun) when is_list(collection) do
    do_count(collection, fun)
  end
