From 0765a9a1ea31b11075731f4f33b68b40b6f15154 Mon Sep 17 00:00:00 2001 From: Jed Barber Date: Thu, 13 Mar 2014 23:40:39 +1100 Subject: GHC bug of some kind --- Unlambda/Parser.hs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'Unlambda/Parser.hs') diff --git a/Unlambda/Parser.hs b/Unlambda/Parser.hs index ec604cf..851fc01 100644 --- a/Unlambda/Parser.hs +++ b/Unlambda/Parser.hs @@ -9,11 +9,19 @@ module Unlambda.Parser ( import Control.Applicative( some ) import Control.Monad.Trans.Cont import Control.Monad.IO.Class +import Control.Monad.Trans.State.Lazy import Data.Either import Text.ParserCombinators.Parsec +type ULM a = ContT UnlambdaTerm (StateT UnlambdaState IO) a + +data UnlambdaState = UnlambdaState { exit :: UnlambdaTerm -> ULM UnlambdaTerm + , curChar :: Maybe Char } + + + data UnlambdaTerm = S | K | I | V | R | D | C | E | Bar | Reed | Dot Char | Compare Char @@ -22,7 +30,7 @@ data UnlambdaTerm = S | K | I | V | R | D | C | E | Bar | Reed | Spartial UnlambdaTerm | Sapp UnlambdaTerm UnlambdaTerm | Promise UnlambdaTerm - | Continuation (UnlambdaTerm -> ContT UnlambdaTerm IO UnlambdaTerm) + | Continuation (UnlambdaTerm -> ULM UnlambdaTerm) instance Eq UnlambdaTerm where -- cgit