   Multiple uses of `@compile` will accumulate instead of overriding
   previous ones. See the "Compile options" section below.
 
-  ### @doc
+  ### `@doc`
 
   Provides documentation for the function or macro that follows the
   attribute.
 
   Accepts a string (often a heredoc) or `false` where `@doc false` will
-  make the function/macro invisible to the documentation extraction tools
+  make the function/macro invisible to documentation extraction tools
   like ExDoc. For example:
 
-      defmodule M do
+      defmodule MyModule do
         @doc "Hello world"
         def hello do
           "world"

  Each module can be decorated with one or more attributes. The following ones
  are currently defined by Elixir:

  ### @after_compile

  A hook that will be invoked right after the current module is compiled.
  Accepts a module or a tuple `{<module>, <function name>}`.
  See the "Compile callbacks" section below.

  ### @before_compile

  A hook that will be invoked before the module is compiled.
  Accepts a module or a tuple `{<module>, <function/macro atom>}`.
  See the "Compile callbacks" section below.

  ### @behaviour (notice the British spelling)

  Behaviours can be referenced by modules to ensure they implement
  required specific function signatures defined by `@callback`.

  There are three callbacks that are invoked when functions are defined,
  as well as before and immediately after the module bytecode is generated.

  ### `@after_compile`

  A hook that will be invoked right after the current module is compiled.

  Accepts a module or a `{module, function_name}` tuple. The function
  must take two arguments: the module environment and its bytecode.
  When just a module is provided, the function is assumed to be
  `__after_compile__/2`.

  #### Example

      defmodule MyModule do
        @after_compile __MODULE__

        def __after_compile__(env, _bytecode) do
