   ## Types
 
   Every record defines a type named `t` that can be accessed in typespecs.
-  Those types can be passed at the moment the record is defined:
+  Those types can be specified when the record is defined:
 
       defrecord User,
         name: "" :: string,
         age: 0 :: integer
 
-  All the fields without a specified type are assumed to have type `term`.
+  All fields without a specified type are assumed to have type `term`.
 
   Assuming the `User` record defined above, it could be used in typespecs
   as follow:

      user.to_keywords #=> [name: "José", age: 25]

  Since a record is simply a tuple where the first element is
  the record name, we can get its raw record representation as
  follow:

      inspect User.new, raw: true
      #=> { User, nil, 0 }

  Besides defining readers and writers for each attribute, Elixir also
  defines an `update_#{attribute}` function to update the value. Such
  functions expect a function as argument that receives the current
  value and must return the new one. For example, every time the file
  is accessed, the accesses counter can be incremented with:


      name #=> "José"

  It is important to understand that in the above example, the record
  will assume the leading tuple element from the current module (in the
  above case, `User`).

  In some cases, however, this might be undesirable and one can explicitly
  define what the first element of the record should be:

      defmodule MyServer do
        defrecordp :state, :my_state, data: nil
      end

  This way, the record created will have `:my_state` as first element,
  not `MyServer`:

      state() #=> { :my_state, nil }

  ## Types

