1module Effectful.Writer.Dynamic
18import Effectful.Internal.Effect
19import Effectful.Internal.Monad
20import Effectful.Interpreter
22import qualified Effectful.Writer as WP
23import qualified Effectful.Writer.MVar as WM
25data Writer w :: Effect where
26 Tell :: ~w -> Writer w m ()
27 Listen :: m a -> Writer w m (a, w)
29----------------------------------------
32runWriter :: Monoid w => Eff (Writer w : es) a -> Eff es (a, w)
33runWriter = reinterpretM WP.runWriter writerPure
35execWriter :: Monoid w => Eff (Writer w : es) a -> Eff es w
36execWriter = reinterpretM WP.execWriter writerPure
39 :: (WP.Writer w :> localEs, Monoid w)
40 => RunIn es (Eff localEs)
41 -> Writer w (Eff es) a
45 Listen m -> WP.listen (run m)
47----------------------------------------
50runWriterMVar :: Monoid w => Eff (Writer w : es) a -> Eff es (a, w)
51runWriterMVar = reinterpretM WM.runWriter writerMVar
53execWriterMVar :: Monoid w => Eff (Writer w : es) a -> Eff es w
54execWriterMVar = reinterpretM WM.execWriter writerMVar
57 :: (WM.Writer w :> localEs, Monoid w)
58 => RunIn es (Eff localEs)
59 -> Writer w (Eff es) a
63 Listen m -> WM.listen (run m)
65----------------------------------------
68tell :: (Writer w :> es, Monoid w) => w -> Eff es ()
71listen :: (Writer w :> es, Monoid w) => Eff es a -> Eff es (a, w)
74listens :: (Writer w :> es, Monoid w) => (w -> b) -> Eff es a -> Eff es (a, b)
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list