diff options
author | Jed Barber <jjbarber@y7mail.com> | 2014-03-13 23:40:39 +1100 |
---|---|---|
committer | Jed Barber <jjbarber@y7mail.com> | 2014-03-13 23:40:39 +1100 |
commit | 0765a9a1ea31b11075731f4f33b68b40b6f15154 (patch) | |
tree | 2023781572cb8244e719554f88e82eaf2d4e48ba /Unlambda/Parser.hs | |
parent | d6142115006893b806e313bb69b762f1afb3ea44 (diff) |
GHC bug of some kind
Diffstat (limited to 'Unlambda/Parser.hs')
-rw-r--r-- | Unlambda/Parser.hs | 10 |
1 files changed, 9 insertions, 1 deletions
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 |