Module type ConstrSys.MonSystem

A side-effecting system.

type v
type d
type 'a m
module Var : VarType with type t = v

Variables must be hashable, comparable, etc.

module Dom : Lattice.S with type t = d

Values must form a lattice.

val system : v -> ((v -> d) -> (v -> d -> unit) -> d) m

The system in functional form.

val sys_change : (v -> d) -> v sys_change_info

Compute incremental constraint system change from old solution.