Mlsem_types.AbstractAbstract types: opaque parameterized type constructors, such as ref('a), whose parameters are invariant.
Abstract types: opaque parameterized type constructors, such as ref('a), whose parameters are invariant.
val define : string -> int -> tdefine name arity creates a fresh abstract type constructor.
val arity : t -> intThe disjunctive normal form of the given abstract type's part of a type: a disjunction of conjunctions of parameter tuples.
val top_transform :
((t * (Ty.t list list * Ty.t list list) list) ->
(Ty.t list list * Ty.t list list) list) ->
Ty.t ->
Ty.tRewrites the abstract atoms occurring at the top level of a type. The function receives, for one abstract constructor, its normal form as a list of (positive tuples, negative tuples) pairs.