Starting from scratch the documentation of the type system