+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