 
   ## Types
 
-  It is recommended to define types for structs. By convention such type
+  It is recommended to define types for structs. By convention, such a type
   is called `t`. To define a struct inside a type, the struct literal syntax
   is used:
 

  ## Enforcing keys

  When building a struct, Elixir will automatically guarantee all keys
  belongs to the struct:

      %User{name: "john", unknown: :key}
      ** (KeyError) key :unknown not found in: %User{age: 21, name: nil}

  Elixir also allows developers to enforce certain keys must always be
  given when building the struct:

      defmodule User do

        defstruct [:title, :content, :author]
      end

  Add documentation to a struct with the `@doc` attribute, like a function.

      defmodule Post do
        @doc "A post. The content should be valid Markdown."
