diff options
author | Gregor Kleen <pngwjpgh@users.noreply.github.com> | 2016-07-28 23:32:02 +0200 |
---|---|---|
committer | Gregor Kleen <pngwjpgh@users.noreply.github.com> | 2016-07-28 23:32:02 +0200 |
commit | 9bffd435230514c00177a315bf65d9c13969f7dc (patch) | |
tree | 07dda740f6a3e130233c0e0940ae2f4b954b8103 /events/src/Events/Eval.hs | |
parent | b2e4264e7849f322cbb2bb592b15d2ea7aec9149 (diff) | |
download | events-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.hs | 16 |
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 @@ | |||
1 | module Events.Eval | ||
2 | ( evaluate | ||
3 | ) where | ||
4 | |||
5 | import Control.Monad.Fix (MonadFix(mfix)) | ||
6 | |||
7 | import Events.Types | ||
8 | |||
9 | import Data.Maybe (catMaybes) | ||
10 | |||
11 | import Control.Lens | ||
12 | |||
13 | evaluate :: MonadFix m => (Maybe Object -> StateT EvalCtx m Bool) -> Eval m () -> m [Object] | ||
14 | evaluate predicate x = catMaybes <$> mfix x' | ||
15 | where | ||
16 | x' = evalStateT (foldNDT predicate (preview objCtx <$> execStateT x def)) . flip (set ctxEvents) def . catMaybes | ||