--- /dev/null
+definition module GenLexOrd\r
+\r
+import StdGeneric, GenEq\r
+\r
+:: LexOrd = LT |EQ | GT\r
+derive gEq LexOrd\r
+\r
+generic gLexOrd a b :: a b -> LexOrd\r
+\r
+// base cases\r
+derive gLexOrd Char, Bool, Int, Real, String, UNIT, PAIR, EITHER, FIELD, CONS, OBJECT, [], {}, {!}\r
+\r
+// standard types\r
+derive gLexOrd (,), (,,), (,,,), (,,,,), (,,,,,), (,,,,,,), (,,,,,,,)\r
+\r
+(=?=) infix 4 :: a a -> LexOrd | gLexOrd{|*|} a\r