summaryrefslogtreecommitdiff
path: root/tree.sig
blob: e06ca68cda0474a91054869f1e4375f334f33a5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
signature TREE = sig
  type ('k, 'v) t

  val empty: ('k, 'v) t

  type 'k cmp = 'k -> 'k -> order

  val insert: 'k cmp -> ('k, 'v) t -> 'k -> 'v -> 'v option * ('k, 'v) t

  val delete: 'k cmp -> ('k, 'v) t -> 'k -> 'v option * ('k, 'v) t

  val lookup: 'k cmp -> ('k, 'v) t -> 'k -> 'v option
  val lookup2: 'k cmp -> ('k, 'v) t -> 'k ->
        ('v option -> 'a * 'v option) -> 'a * ('k, 'v) t

  val print: ('k, 'v) t -> ('k -> string) -> ('v -> string) -> unit
end