generic_ident * typename or info
Extending an existing generic for a particular type name
The use of first class modules there is essentially because we cannot talk about a variable of kind * -> k val register1 : 'a 't Typerep.t -> ('a computation -> 'a 't computation) -> unit ...
special less scary type when the type has no parameters. this is equivalent as using register0
main function : compute the generic computation from the typerep