reset a3, kut Charlie ;)
[tt2015.git] / a3 / code / Generics / GenLexOrd.dcl
diff --git a/a3/code/Generics/GenLexOrd.dcl b/a3/code/Generics/GenLexOrd.dcl
new file mode 100644 (file)
index 0000000..bb11adf
--- /dev/null
@@ -0,0 +1,16 @@
+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