module Dalton_aux: sig end
Auxiliary definitions
This module define several auxiliary datatypes that are useful for the
description of the ground algebra. They are also used internally by
the solver.
type 'a
printer = Format.formatter > 'a > unit
Prettyprinting in the library is performed by the Format
module.
Therefore a printer of values of type 'a
may be viewed as a
function of type 'a printer
.
type printing = Format.formatter > unit
Similarly, the printing of some message on a formatter may be abstractly
represented by a function of type printing
.
type color = int
For drawing purposes, a color is represented by a simple integer,
as in the Graphics
module of the Objective Caml standard library.
type kind =
 
Katom 
 
Ktype 
 
Krow of kind 
In the term algebra considered by the solver, terms may have one of
the following kinds:
Katom
for atoms,
Ktype
for type,
Krow k
for rows whose elements have kind k
.
module Kind: sig end
Basic operations on kinds are provided by the module Variance
.
type variance =
 
Covariant 
 
Contravariant 
 
Invariant 
A variance is one of the three elements Covariant
, Contravariant
and Invariant
.
module Variance: sig end
Basic operations on variances are provided by the module Variance
.
type constructor_arg = {

variance : variance ; 
(*  The variance of the argument.  *) 

kind : kind ; 
(*  The kind of the argument.  *) 

ldestr : bool ; 
(*  A boolean setting whether left destructor decomposes on this
argument.  *) 

rdestr : bool ; 
(*  A boolean setting whether right destructor decomposes on this
argument.  *) 
}
Signatures of type constructors are specified by giving for each
argument a record of type constructor_arg
.