Abstract types helpers.
An abstract type in the sense of the typerep library is a type whose representation is unknown. Such a type has only a name that can be used to provide and register custom implementation of generics. This is typically a type obtained with the following syntax extension:
type t with typerep(abstract)
The following functors are meant to be used by the code generator, however they could also be useful while writing low level typerep code manually.