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

  val empty: ('k, 'v) t

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

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