 
   """
   @spec first([elem]) :: nil | elem when elem: var
-  def first([]),      do: nil
+  def first([]), do: nil
   def first([head | _]), do: head
 
   @doc """

  def ascii_printable?(_, 0) do
    true
  end
  def ascii_printable?([char | rest], counter) when is_integer(char) and char >= 32 and char <= 126 do
    ascii_printable?(rest, decrement(counter))
  end
  def ascii_printable?([?\n | rest], counter) do
    ascii_printable?(rest, decrement(counter))
  end
  def ascii_printable?([?\r | rest], counter) do
    ascii_printable?(rest, decrement(counter))
  end
  def ascii_printable?([?\t | rest], counter) do
    ascii_printable?(rest, decrement(counter))
  end
  def ascii_printable?([?\v | rest], counter) do
    ascii_printable?(rest, decrement(counter))
  end
  def ascii_printable?([?\b | rest], counter) do
    ascii_printable?(rest, decrement(counter))
  end
  def ascii_printable?([?\f | rest], counter) do
    ascii_printable?(rest, decrement(counter))
  end
  def ascii_printable?([?\e | rest], counter) do
    ascii_printable?(rest, decrement(counter))
  end
  def ascii_printable?([?\a | rest], counter) do
    ascii_printable?(rest, decrement(counter))
  end
  def ascii_printable?([], _counter), do: true
  def ascii_printable?(_, _counter), do: false

  @compile {:inline, decrement: 1}
  defp decrement(:infinity), do: :infinity
  defp decrement(counter),   do: counter - 1

  @doc """
  Returns a list with `value` inserted at the specified `index`.

  @spec starts_with?([], nonempty_list) :: false
  def starts_with?(list, prefix)

  def starts_with?([head | tail], [head | prefix_tail]), do: starts_with?(tail, prefix_tail)
  def starts_with?(list, []) when is_list(list), do: true
  def starts_with?(list, [_ | _]) when is_list(list), do: false

  @doc """
  Converts a charlist to an atom.
