aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics/dn.mli
blob: 211b75a362d7138521dd7dbd2d6ccb25ce4b5116 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

(* $Id$ *)

(* Discrimination nets. *)

type ('lbl,'pat) dn_args = 'pat -> ('lbl * 'pat list) option

type ('lbl,'pat,'inf) t = {
  tm : (('lbl * int) option,'pat * 'inf) Tlm.t;
  args : ('lbl,'pat) dn_args }

type ('lbl,'pat,'inf) under_t = (('lbl * int) option,'pat * 'inf) Tlm.t
				  
val create : ('lbl,'pat) dn_args -> ('lbl,'pat,'inf) t
    
val add : ('lbl,'pat,'inf) t -> 'pat * 'inf -> ('lbl,'pat,'inf) t

val rmv : ('lbl,'pat,'inf) t -> 'pat * 'inf -> ('lbl,'pat,'inf) t

val path_of : ('lbl,'pat) dn_args -> 'pat -> ('lbl * int) option list
    
val lookup : 
  ('lbl,'pat,'inf) t -> ('lbl,'term) dn_args -> 'term -> ('pat * 'inf) list

val app : (('pat * 'inf) -> unit) -> ('lbl,'pat,'inf) t -> unit