module Structure: sig
.. end
Gadt describing the structure of a tree of different data types,
and providing fast accessors of its nodes.
The leafs must provide a key from a Key module, see key.mli for details.
type ('_, '_)
eq =
Equality witness between types.
module type Key = sig
.. end
Keys identifying datatypes.
module Make: functor (
X
:
sig
end
) ->
Key
module Key_Value: Key
Keys module for the abstract values of Eva.
module Key_Location: Key
Keys module for the abstract locations of Eva.
module Key_Domain: Key
Keys module for the abstract domains of Eva.
module type Shape = sig
.. end
A Key module with its structure type.
module Shape: functor (
Key
:
Key
) ->
functor (
Data
:
sig
end
) ->
Shape
with type 'a key = 'a Key.key
and type 'a data = 'a Data.t
module type Internal = sig
.. end
Internal view of the tree, with the structure.
module type External = sig
.. end
External view of the tree, with accessors.
module Open: functor (
Shape
:
Shape
) ->
functor (
Data
:
Internal
with type 'a structure := 'a Shape.structure
) ->
External
with type t := Data.t
and type 'a key := 'a Shape.key
Opens an internal tree module into an external one.