Module type Variant_and_record_intf.S

type 'a t
include module type of sig ... end
module Tag_internal : sig ... end
module Tag : sig ... end

Witness of a tag, that is an item in a variant type, also called an "applied variant Constructor"

module Variant_internal : sig ... end
module Variant : sig ... end
module Field_internal : sig ... end
module Field : sig ... end

Witness of a field, that is an item in a record type. The first parameter is the record type, the second is the type of the field. Example:

module Record_internal : sig ... end
module Record : sig ... end