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 type Shape = sig .. end
A Key module with its structure type.
module Make: functor (X : sigend) -> Shape
module Key_Value: Shape
Keys module for the abstract values of Eva.
module Key_Location: Shape
Keys module for the abstract locations of Eva.
module Key_Domain: Shape
Keys module for the abstract domains of Eva.
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.k
Opens an internal tree module into an external one.