Module Variant

module Variant: sig .. end
OCaml variant type.

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