Specifying a Type
Understand the specific types of Elixir.
We'll cover the following...
A type is simply a subset of all possible values in a language. For example, the type integer means all the possible integer values but excludes lists, binaries, PIDs, and so on.
The basic types in Elixir are as follows:
any, atom, float, fun, integer, list, map, maybe_improper_list, none, pid, port, reference, struct, and tuple.
The type any (and its alias, _) is the set of all values, and none is the empty set. A literal atom or integer is the set containing just that value.
The value nil can be represented as nil.
Collection types
A list is represented as [type], where type is any of the basic or combined types. This notation doesn’t signify a list of one element. It simply says that elements of the list will be of the given type. If we want to specify a nonempty list, we use [type, ...]. As a convenience, the type list is ...