Merge branch 'master' of git.martlubbers.net:clean-tests
[clean-tests.git] / funcdeps / test.icl
index 3f9bb21..56022e9 100644 (file)
@@ -2,6 +2,25 @@ module test
 
 import StdEnv
 
+:: Zero = Zero
+:: Succ a = Succ a
+:: Ar3 a b c :== (a -> b -> c)
+
+class succ a ~b :: a -> b
+instance succ Zero (Succ Zero) where succ Zero = Succ Zero
+instance succ a (Succ a) where succ a = Succ a
+
+class plus a b | succ a b :: a b
+instance plus Zero a a
+where
+       plus a b = b
+instance plus (Succ a) b c | plus a (Succ b) c
+where
+       plus (Succ a) b = plus a (Succ b)
+
+Start :: Int
+Start = 42
+
 class fmap t :: (a -> b) (t a) -> t b
 
 instance fmap ((,)a) where fmap f (a, b) = (a, f b)