module type SCHEME_ROOT = sig end
A (type) scheme is made of a constraint set and a series of entry
nodes, its roots. The same instance of the library may deal with
several form of schemes. Each of them has to be described by an
implementation of the signature SCHEME_ROOT.
type t
The type of schemes.
val cset : t -> Dalton.Make.cset
cset sh returns the constraint set of the scheme sh.
val copy : Dalton.Make.cset ->
(Dalton.Make.node -> Dalton.Make.node) ->
t -> t
copy cset' f sh creates a new scheme
sh' as follows:
- the constraint set of
sh' is cset',
- each root of
sh' is obtained by applying f on the
corresponding root of sh.
val iter : (Dalton_aux.variance -> Dalton.Make.node -> unit) ->
t -> unit
iter f sh applies f on every root of sh (with the
variance of the root as first argument).
val iter2 : (Dalton_aux.variance -> Dalton.Make.node -> Dalton.Make.node -> unit) ->
t -> t -> unit
iter2 f sh1 sh2 applieas f on every pair of corresponding
roots of sh1 and sh2 (with the variance of the roots as first
argument).
val fprint : Format.formatter ->
Dalton.Make.cset Dalton_aux.printer ->
(Dalton_aux.variance -> Format.formatter -> Dalton.Make.node -> unit) ->
t -> unit
fprint ppf print_cset print_node sh pretty prints the scheme
sh on the formatter
ppf. Two functions are provided as argument
to allow printing of information handled by the solver:
print_cset ppf cset prints the constraint set cset on
the formatter ppf
print_node v ppf nd prints the node nd of variance v on
the formatter ppf.