{-# LANGUAGE FlexibleContexts #-}
module Language where
-import Serialise
+import Data.Char
newtype Main a = Main {unmain :: a}
data In a b = a :- b
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
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