Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
we used GADTs of OCaml to declare an equality type
This record uses polymorism of rank 2. This is because internally we need to compare values of types 'a t
and 'b t
. Hence the "for all quantifier" on types cannot be in prenex form in the function register_processor
. We use the GADT above to keep track of the dependency.