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