   end
 
   @doc ~S"""
-  Unescapes the given chars according to the map given.
-
-  Check `unescape_string/1` if you want to use the same map
+  Unescapes characters in a string according to the given mapping.
+
+  Check `unescape_string/1` if you want to use the same mapping
   as Elixir single- and double-quoted strings.
 
-  ## Map
-
-  The map must be a function. The function receives an integer
-  representing the code point of the character it wants to unescape.
+  ## Mapping function
+
+  The mapping function receives an integer representing the code point
+  of the character it wants to unescape. There are also the special atoms
+  `:newline`, `:unicode`, and `:hex`, which control newline, unicode,
+  and escaping respectively.
+
   Here is the default mapping function implemented by Elixir:
 
       def unescape_map(:newline), do: true

  Inspects `atom` according to different source formats.

  The atom can be inspected according to the three different
  formats it appears in source code: as a literal (`:literal`),
  as a key (`:key`), or as the function name of a remote call
  (`:remote_call`).



defmodule Macro do
  @moduledoc ~S"""
  Functions for manipulating AST and implementing macros.

  Macros are compile-time constructs that receive Elixir's AST as input
  and return Elixir's AST as output.

