.
[clean-tests.git] / datatype / Tuple.hs
index 8b76339..8442be1 100644 (file)
@@ -1,15 +1,14 @@
 {-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE GADTs #-}
 {-# LANGUAGE DeriveGeneric #-}
 module Tuple where
 
 import Printer
-import Compiler
-import Interpreter
 import Language.GenDSL
 import Language
 
 data Tuple a b = Tuple a b
-$(genDSL ''Tuple)
+$(genDSL 'Tuple)
 
 data Tuple3 a c = Tuple3 a Int c
 $(genDSL ''Tuple3)
@@ -19,3 +18,9 @@ $(genDSL ''TupleR)
 
 data List a = Nil | Cons a (List a)
 $(genDSL ''List)
+
+data Expr a where
+    Lift   :: a -> Expr a
+    Plus  :: Expr a -> Expr a -> Expr a
+    Equal :: Expr a -> Expr a -> Expr Bool
+$(genDSL ''Expr)