ziv@2240: functor TripleKeyFn (structure I : ORD_KEY ziv@2240: structure J : ORD_KEY ziv@2240: structure K : ORD_KEY) ziv@2240: : ORD_KEY where type ord_key = I.ord_key * J.ord_key * K.ord_key = struct ziv@2240: ziv@2240: type ord_key = I.ord_key * J.ord_key * K.ord_key ziv@2240: ziv@2240: fun compare ((i1, j1, k1), (i2, j2, k2)) = ziv@2240: case I.compare (i1, i2) of ziv@2240: EQUAL => (case J.compare (j1, j2) of ziv@2240: EQUAL => K.compare (k1, k2) ziv@2240: | ord => ord) ziv@2240: | ord => ord ziv@2240: ziv@2240: end