-- 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.
(~!) :: ()