-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Template Haskell library for writing monadic expressions more easily -- -- See README at the bottom. -- -- Getting started: See Each. @package each @version 1.1.0.0 -- | Names that are used to bind things in each blocks are defined -- here. module Each.Invoke -- | Do not use this outside of an each block. Only its name is used, and -- its value itself does not make sense. bind :: () -- | Do not use this outside of an each block. Only its name is used, and -- its value itself does not make sense. (~!) :: () -- | An internal module where most of the real transformation goes on. module Each.Transform -- | A writer monad where the empty case is distinguished. data Result a -- | Invariant: the bind list is not empty Impure :: (DList Stmt) -> a -> Result a Pure :: a -> Result a addBind :: Name -> Exp -> Result () -- | Invoke an each block each :: ExpQ -> ExpQ generate :: Result Exp -> Exp transform :: Exp -> Q (Result Exp) bodyToExp :: Body -> Exp transformFieldExp :: FieldExp -> Q (Result FieldExp) impurify :: Exp -> Q (Result Exp) errNonExhaustiveGuard :: String errUnsupported :: String errPatternGuard :: String errWhere :: String errComplexLet :: String instance GHC.Base.Functor Each.Transform.Result instance GHC.Base.Applicative Each.Transform.Result instance GHC.Base.Monad Each.Transform.Result -- | Users of each should import this module. For more usage info -- see README module Each -- | Invoke an each block each :: ExpQ -> ExpQ -- | Do not use this outside of an each block. Only its name is used, and -- its value itself does not make sense. bind :: () -- | Do not use this outside of an each block. Only its name is used, and -- its value itself does not make sense. (~!) :: ()