We learned about the different kinds of types in Types and it is now time to see how they interact with each other. We start off easy by introducing typedef, a mechanism to give a name (or alias) to a more complex type. Among other things, this will come in handy when working with types having type parameters.
A lot of type-safety is achieved by checking if two given types of the type groups above are compatible. Meaning, the compiler tries to perform unification between them as detailed in Unification.
All types are organized in modules and can be addressed through paths. Modules and Paths will give a detailed explanation of the related mechanics.