   defmacro import(module, opts)
 
   @doc """
-  Returns the current environment information as a `Macro.Env`
-  record. In the environment you can access the current filename,
+  Returns the current environment information as a `Macro.Env[]` record.
+
+  In the environment you can access the current filename,
   line numbers, set up aliases, the current function and others.
   """
   defmacro __ENV__
 
   @doc """
   Returns the current module name as an atom or `nil` otherwise.
+
   Although the module can be accessed in the `__ENV__`, this macro
   is a convenient shortcut.
   """

  defmacro unquote(name)(expr)

  @doc """
  This is the special form used whenever we have to temporarily
  change the scope information of a block. Used when `quote` is
  invoked with `location: :keep` to execute a given block as if
  it belonged to another file.

      quote location: :keep, do: 1
      #=> { :__scope__, [line: 1], [[file: "iex"],[do: 1]] }

  Check `quote/1` for more information.
  """
  defmacro __scope__(opts, args)

  @doc """
  This is the special form used to hold aliases information.
  It is usually compiled to an atom:

      quote do: Foo.Bar #=>
      { :__aliases__, [], [:Foo,:Bar] }

  Elixir represents `Foo.Bar` as `__aliases__` so calls can be
  unambiguously identified by the operator `:.`. For example:

      quote do: Foo.bar #=>
      {{:.,[],[{:__aliases__,[],[:Foo]},:bar]},[],[]}

  Whenever an expression iterator sees a `:.` as the tuple key,
  it can be sure that it represents a call and the second argument

  defmacro __block__(args)

  @doc """
  Captures an anonymous function.

  The most common format to capture a function is via module,
  name and arity:
