 
   @doc """
   Unescape the given tokens according to the given map.
+
   Check `unescape_tokens/1` and `unescape_string/2` for more information.
   """
   @spec unescape_tokens([Macro.t], (non_neg_integer -> non_neg_integer | false)) :: [Macro.t]

  end

  @doc %S"""
  Unescape the given chars. This is the unescaping behavior
  used by default in Elixir single- and double-quoted strings.
  Check `unescape_string/2` for information on how to customize
  the escaping map.

  end

  @doc """
  Receives an AST node and expands it once. 
  
  The following contents are expanded:

  * Macros (local or remote);
  * Aliases are expanded (if possible) and return atoms;
  * All pseudo-variables (`__FILE__`, `__MODULE__`, etc);
  * Module attributes reader (`@foo`);

  If the expression cannot be expanded, it returns the expression
  itself. Notice that `expand_once/2` performs the expansion just
  once and it is not recursive. Check `expand/2` for expansion
  until the node no longer represents a macro.

  ## Examples

