   And we would have to define the implementation for all types.
   The supported types available are:
 
-  * Record (see below)
+  * Structs (see below)
   * Tuple
   * Atom
   * List

  * Float
  * Function
  * PID
  * Port
  * Reference
  * Any (see below)

  ## Protocols + Records

  The real benefit of protocols comes when mixed with records.
  For instance, Elixir ships with many data types implemented as
  records, like `HashDict` and `HashSet`. We can implement the
  `Blank` protocol for those types as well:

      defimpl Blank, for: HashDict do
        def blank?(dict), do: Dict.empty?(dict)
      end

  Since records are tuples, if a protocol is not found a given
  type, it will fallback to `Tuple`.

  ## Fallback to any



  ## Types

  Defining a protocol automatically defines a type named `t`, which
  can be used as:

      @spec present?(Blank.t) :: boolean
      def present?(blank) do
