summaryrefslogtreecommitdiff
path: root/src/list_key_fn.sml
blob: ec2bd26fc0ee4732322072c94a665ee91370477f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
functor ListKeyFn(K : ORD_KEY)
        : ORD_KEY where type ord_key = K.ord_key list = struct

type ord_key = K.ord_key list

val rec compare =
 fn ([], []) => EQUAL
  | ([], _) => LESS
  | (_, []) => GREATER
  | (x::xs, y::ys) => case K.compare (x, y) of
                              EQUAL => compare (xs, ys)
                            | ord => ord

end