 
       iex> true and false
       false
+      iex> true and "yay!"
+      "yay!"
 
   """
   defmacro left and right do

  @doc """
  Raises an exception preserving a previous stacktrace.

  Works like `raise/2` but does not generate a new stacktrace.

  See `reraise/2` for more details.

  ## Examples


  @doc """
  Raises an exception.

  If the argument `msg` is a binary, it raises a `RuntimeError` exception
  using the given argument as message.

  If `msg` is an atom, it just calls `raise/2` with the atom as the first
  argument and `[]` as the second argument.

  If `msg` is anything else, the given exception is raised.

  ## Examples

      iex> raise "Oops"
      ** (RuntimeError) Oops

      try do
        1 + :foo
