From b32f827fad4620ab02d764389a5a1ade7a4ee1e4 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Sat, 16 Apr 2016 18:47:53 +0200 Subject: Made context mutable during interpretation --- events/src/Events/Types.hs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/events/src/Events/Types.hs b/events/src/Events/Types.hs index 1f41454..54aa34d 100644 --- a/events/src/Events/Types.hs +++ b/events/src/Events/Types.hs @@ -19,7 +19,7 @@ import Data.Aeson (Object) import Data.Time.Clock -import Control.Monad.Reader +import Control.Monad.State.Lazy import ListT (ListT) import qualified ListT @@ -54,9 +54,9 @@ instance Default SpecCtx where , _ctxEvents = mempty } -type Spec m a = ListT (ReaderT SpecCtx m) a +type Spec m a = ListT (StateT SpecCtx m) a interpret :: MonadFix m => Spec m (Maybe Event) -> m [Event] interpret x = catMaybes <$> mfix x' where - x' = runReaderT (ListT.toList x) . flip (set ctxEvents) def . catMaybes + x' = evalStateT (ListT.toList x) . flip (set ctxEvents) def . catMaybes -- cgit v1.2.3