Module Variant

module Variant: sig .. end
OCaml variant type.

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