1signature LVTermNet =
2sig
3
4  (* signature names modelled on Binarymap's *)
5  type 'a lvtermnet
6  type term = Term.term
7  type key = Term.term list * Term.term
8
9  val empty : 'a lvtermnet
10  val insert : ('a lvtermnet * key * 'a) -> 'a lvtermnet
11  val find : 'a lvtermnet * key -> 'a list
12  val peek : 'a lvtermnet * key -> 'a list
13  val match : 'a lvtermnet * term -> (key * 'a) list
14
15  val delete : 'a lvtermnet * key -> 'a lvtermnet * 'a list
16  val numItems : 'a lvtermnet -> int
17  val listItems : 'a lvtermnet -> (key * 'a) list
18  val app : (key * 'a list -> unit) -> 'a lvtermnet -> unit
19  val fold : (key * 'a * 'b -> 'b) -> 'b -> 'a lvtermnet -> 'b
20
21  val map : (key * 'a -> 'b) -> 'a lvtermnet -> 'b lvtermnet
22  val transform : ('a -> 'b) -> 'a lvtermnet -> 'b lvtermnet
23
24end
25