 
   """
   @spec sort_by(t, (element -> mapped_element),
-    (mapped_element, mapped_element -> boolean))
-    :: list when mapped_element: element
+                (mapped_element, mapped_element -> boolean))
+                :: list when mapped_element: element
 
   def sort_by(enumerable, mapper, sorter \\ &<=/2) when is_function(sorter, 2) do
     enumerable


  ## Helpers

  @compile {:inline, enum_to_string: 1}

  defp enum_to_string(entry) when is_binary(entry), do: entry
  defp enum_to_string(entry), do: String.Chars.to_string(entry)

          {acc1, [entry | acc2]}
        end
      end)
    {:lists.reverse(acc1), :lists.reverse(acc2)}
  end

