 
       Integer :: integer
                | ElixirInteger                # ..., -1, 0, 1, ... 42 ...
-               | ElixirInteger..ElixirInteger # specifies an integer range
+               | ElixirInteger..ElixirInteger # an integer range
 
       List :: list(Type)                        # proper list ([]-terminated)
             | improper_list(Type1, Type2)       # Type1=contents, Type2=termination


  @doc """
  Defines a callback.
  This macro is the one responsible for handling the attribute `@callback`.

  ## Examples


  @doc """
  Returns all specs available from the module's beam code.

  The result is returned as a list of tuples where the first
  element is spec name and arity and the second is the spec.

  The module must have a corresponding beam file which can be
  located by the runtime system.
  """
  @spec beam_specs(module | binary) :: [tuple] | nil
