module Abstract_domain:sig..end
module type Lattice =sig..end
module type Queries =sig..end
module type Transfer =sig..end
module type Logic =sig..end
module type Valuation =sig..end
module type S =sig..end
type'akey ='a Structure.Key_Domain.k
type'astructure ='a Structure.Key_Domain.structure=
| |
Void : |
| |
Leaf : |
| |
Node : |
let key = Structure.Key_Domain.create_key "name_of_the_domain";;
let structure = Leaf key;;
Then, the key should be exported by the domain, to allow the use of the
functions defined in the Abstract_domain.External interface below.
A compound domain may use the Node constructor to provide a separate
access to each of its parts.
A domain can also use the Void constructor to prevent access to itself.
module type Internal =sig..end
module type External =sig..end