Module Dn.Make

Parameters

module Y : Stdlib.Map.OrderedType
module Z : Stdlib.Map.OrderedType

Signature

type 'a decompose_fun = 'a -> (Y.t * 'a list) option
type t
val empty : t

add t f (tree,inf) adds a structured object tree together with the associated information inf to the table t; the function f is used to translated tree into its prefix decomposition: f must decompose any tree into a label characterizing its root node and the list of its subtree

type pattern
val pattern : 'a decompose_fun -> 'a -> pattern
val add : t -> pattern -> Z.t -> t
val rmv : t -> pattern -> Z.t -> t
type 'tree lookup_fun = 'tree -> (Y.t * 'tree list) lookup_res

lookup t f tree looks for trees (and their associated information) in table t such that the structured object tree matches against them; f is used to translated tree into its prefix decomposition: f must decompose any tree into a label characterizing its root node and the list of its subtree

val lookup : t -> 'term lookup_fun -> 'term -> Z.t list