cleanup
[clean-tests.git] / datatype / Language.hs
index 1f0aab2..bc7c73f 100644 (file)
@@ -2,7 +2,7 @@
 {-# LANGUAGE FlexibleContexts #-}
 module Language where
 
-import Serialise
+import Data.Char
 
 newtype Main a = Main {unmain :: a}
 data In a b = a :- b
@@ -20,7 +20,7 @@ class Expression v where
     lit :: (Serialise a, Show a) => a -> v a
     (+.) :: Num a => v a -> v a -> v a
     (-.) :: Num a => v a -> v a -> v a
-    (/.) :: Fractional a => v a -> v a -> v a
+    (/.) :: Num a => v a -> v a -> v a
     (*.) :: Num a => v a -> v a -> v a
     neg :: Num a => v a -> v a
     (&.) :: v Bool -> v Bool -> v Bool
@@ -43,3 +43,13 @@ infixr 3 &.
 infix 4 ==., /=., <., >., <=., >=.
 infixl 6 +., -.
 infixl 7 *., /.
+
+class Serialise a where
+    serialise :: a -> Int
+
+instance Serialise Int where
+    serialise i = i
+instance Serialise Bool where
+    serialise = fromEnum
+instance Serialise Char where
+    serialise = ord