   end
 
   @doc """
-  Prepend the items given as first argument to list
-  as right argument. Note that items are prepended in
-  reverse order. This function does not modify the tail
-  and therefore does not duplicate the entries in memory.
+  Prepends the items from the list of the left to the list on the right.
+  Note that items are prepended in reverse order. This function does not modify
+  the tail and therefore does not duplicate the entries in memory.
 
   ## Examples
 


  @doc """
  Appends the list on the right to the list on the left.
  If the list on the left contains only one element, the
  we simply add it as a head as an optimization. This
  function does the same as the `++` operator.

  ## Examples

      List.append [1,2,3], [4,5,6]
      #=> [1,2,3,4,5,6]

  """
  def append(list, elements) when is_list(list) and is_list(elements) do
    list ++ elements
  end

  @doc """
  Flattens the given `list` of lists. An optional
  tail can be given that will be added at the end of
  the flattened list.


defmodule List do
  @moduledoc """
  Implements functions that only make sense for lists
  and cannot be part of the Enum protocol. In general,
  favor using the Enum API instead of List.

  A decision was taken to delegate most functions to
  Erlang's standard lib. Small performance gains
  might be acquired by re-implementing them in Elixir.
  """

  # Bifs: member/2, reverse/2
  # Bifs: keymember/3, keysearch/3, keyfind/3

