OCaml variant type.
type 'constructor t = {
name : string;
rank : int;
constructor : 'constructor;
}