Merge branch 'master' of https://github.com/dopefishh/tt2015
[tt2015.git] / a3 / code / Generics / GenEq.icl
diff --git a/a3/code/Generics/GenEq.icl b/a3/code/Generics/GenEq.icl
deleted file mode 100644 (file)
index 6bb1c8b..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-implementation module GenEq\r
-\r
-import StdGeneric, StdEnv\r
-\r
-generic gEq a  :: a a -> Bool\r
-gEq{|Int|}     x y                                                     = x == y\r
-gEq{|Char|} x y                                                        = x == y\r
-gEq{|Bool|} x y                                                        = x == y\r
-gEq{|Real|} x y                                                        = x == y\r
-gEq{|String|} x y                                                      = x == y\r
-gEq{|UNIT|} UNIT UNIT                                          = True\r
-gEq{|PAIR|} fx fy (PAIR x1 y1) (PAIR x2 y2) = fx x1 x2 && fy y1 y2\r
-gEq{|EITHER|} fl fr (LEFT x) (LEFT y)          = fl x y\r
-gEq{|EITHER|} fl fr (RIGHT x) (RIGHT y)        = fr x y\r
-gEq{|EITHER|} fl fr    _ _                             = False\r
-gEq{|CONS|} f (CONS x) (CONS y)                        = f x y\r
-gEq{|FIELD|} f (FIELD x) (FIELD y)                     = f x y\r
-gEq{|OBJECT|} f (OBJECT x) (OBJECT y)          = f x y\r
-gEq{|{}|} f xs ys                                                      = eqArray f xs ys\r
-gEq{|{!}|} f xs ys                                                     = eqArray f xs ys\r
-\r
-derive gEq [], (,), (,,), (,,,), (,,,,), (,,,,,), (,,,,,,), (,,,,,,,)\r
-\r
-\r
-(===) infix 4 :: a a -> Bool | gEq{|*|} a\r
-(===) x y = gEq{|*|} x y\r
-\r
-(=!=) infix 4 :: a a -> Bool | gEq{|*|} a\r
-(=!=) x y = not (x === y)\r
-\r
-eqArray f xs ys = size xs == size ys && eq 0 (size xs) xs ys\r
-where\r
-       eq i n xs ys\r
-               | i == n        = True          \r
-               | i < n         = f xs.[i] ys.[i] && eq (inc i) n xs ys\r