ziv@2277: functor ListKeyFn(K : ORD_KEY) ziv@2277: : ORD_KEY where type ord_key = K.ord_key list = struct ziv@2277: ziv@2277: type ord_key = K.ord_key list ziv@2277: ziv@2277: val rec compare = ziv@2277: fn ([], []) => EQUAL ziv@2277: | ([], _) => LESS ziv@2277: | (_, []) => GREATER ziv@2277: | (x::xs, y::ys) => case K.compare (x, y) of ziv@2277: EQUAL => compare (xs, ys) ziv@2277: | ord => ord ziv@2277: ziv@2277: end