Sstt.DescrMonomorphic type descriptors.
module Intervals = VDescr.Descr.IntervalsInteger components.
module Enums = VDescr.Descr.EnumsEnums components.
module Arrows = VDescr.Descr.ArrowsArrow components.
module Records = VDescr.Descr.RecordsRecord components.
module Tuples = VDescr.Descr.TuplesTuple components.
module Tags = VDescr.Descr.TagsTagged types components.
A uniform representation of components, tagged with their kind. It can be usefull if some components have a uniform behaviour. For instance:
let map_arrow_records fr fa = function
| Arrows a -> Arrows (Arrows.map_nodes fa a)
| Records r -> Records (Records.map_nodes fr r)
| c -> cset_component t c returns the type t ~\setminus~ 𝟙c~\cup~ c, where 𝟙c is the top of component c.
of_components [c1; ...; cn] returns \bigcup_{i=1\ldots n} c_i
val get_intervals : t -> Intervals.tReturns the Sstt.Intervals component of a descriptor.
Returns the Sstt.Enums component of a descriptor.
Returns the Sstt.Arrows component of a descriptor.
Returns the Sstt.Records component of a descriptor.
Returns the Sstt.Tuples component of a descriptor.
val mk_enum : Enums.Atom.t -> tCreates a singleton type descriptor from a single enum.
Creates a type descriptor from an Sstt.Enums component.
val mk_interval : Intervals.Atom.t -> tCreates a type descriptor from a single interval.
val mk_intervals : Intervals.t -> tCreates a type descriptor from an Sstt.Intervals component.
val mk_arrow : Arrows.Atom.t -> tCreates a type descriptor from a single arrow.
Creates a type descriptor from an Sstt.Arrows component.
val mk_record : Records.Atom.t -> tCreates a type descriptor from a single record.
Creates a type descriptor from an Sstt.Records component.
val mk_tuple : Tuples.Comp.Atom.t -> tCreates a type descriptor from a single tuple.
val mk_tuplecomp : Tuples.Comp.t -> tCreates a type descriptor from a tuple component of a fixed arity tuple.
Creates a type descriptor from a Sstt.Tuples component family, mixing several tuple arities.
val mk_tag : Tags.Comp.Atom.t -> tCreates a type descriptor from a single tagged type.
val mk_tagcomp : Tags.Comp.t -> tCreates a type descriptor from a tagged component of a fixed tag.
Creates a type descriptor from a Sstt.Tags component family, mixing several tuple arities.