summaryrefslogtreecommitdiff
path: root/events/src/Events/Eval.hs
diff options
context:
space:
mode:
authorGregor Kleen <pngwjpgh@users.noreply.github.com>2016-07-28 23:32:02 +0200
committerGregor Kleen <pngwjpgh@users.noreply.github.com>2016-07-28 23:32:02 +0200
commit9bffd435230514c00177a315bf65d9c13969f7dc (patch)
tree07dda740f6a3e130233c0e0940ae2f4b954b8103 /events/src/Events/Eval.hs
parentb2e4264e7849f322cbb2bb592b15d2ea7aec9149 (diff)
downloadevents-9bffd435230514c00177a315bf65d9c13969f7dc.tar
events-9bffd435230514c00177a315bf65d9c13969f7dc.tar.gz
events-9bffd435230514c00177a315bf65d9c13969f7dc.tar.bz2
events-9bffd435230514c00177a315bf65d9c13969f7dc.tar.xz
events-9bffd435230514c00177a315bf65d9c13969f7dc.zip
cleanup
Diffstat (limited to 'events/src/Events/Eval.hs')
-rw-r--r--events/src/Events/Eval.hs16
1 files changed, 16 insertions, 0 deletions
diff --git a/events/src/Events/Eval.hs b/events/src/Events/Eval.hs
new file mode 100644
index 0000000..c5bc134
--- /dev/null
+++ b/events/src/Events/Eval.hs
@@ -0,0 +1,16 @@
1module Events.Eval
2 ( evaluate
3 ) where
4
5import Control.Monad.Fix (MonadFix(mfix))
6
7import Events.Types
8
9import Data.Maybe (catMaybes)
10
11import Control.Lens
12
13evaluate :: MonadFix m => (Maybe Object -> StateT EvalCtx m Bool) -> Eval m () -> m [Object]
14evaluate predicate x = catMaybes <$> mfix x'
15 where
16 x' = evalStateT (foldNDT predicate (preview objCtx <$> execStateT x def)) . flip (set ctxEvents) def . catMaybes