ziv@2240: functor OptionKeyFn(K : ORD_KEY) : ORD_KEY = struct ziv@2240: ziv@2240: type ord_key = K.ord_key option ziv@2240: ziv@2240: val compare = ziv@2240: fn (NONE, NONE) => EQUAL ziv@2240: | (NONE, _) => LESS ziv@2240: | (_, NONE) => GREATER ziv@2240: | (SOME x, SOME y) => K.compare (x, y) ziv@2240: ziv@2240: end