{-# LANGUAGE QualifiedDo #-}
{-# OPTIONS_GHC -Wno-missing-export-lists #-}
module Language.Haskell.TH.Natural.Syntax.Builder.Monad where
import Language.Haskell.TH.Natural.Syntax.Builder.Internal
import Prelude hiding (fail, (>>), (>>=))
import qualified Prelude
{-# INLINE (>>=) #-}
(>>=) :: (Monad m) => BaseBuilder m s prev curr a -> (a -> BaseBuilder m s curr next b) -> BaseBuilder m s prev next b
>>= :: forall {k} (m :: * -> *) s (prev :: k) (curr :: k) a (next :: k) b.
Monad m =>
BaseBuilder m s prev curr a
-> (a -> BaseBuilder m s curr next b)
-> BaseBuilder m s prev next b
(>>=) (MkB StateT s m a
f1) a -> BaseBuilder m s curr next b
f2 = StateT s m b -> BaseBuilder m s prev next b
forall k (m :: * -> *) s (prev :: k) (next :: k) a.
StateT s m a -> BaseBuilder m s prev next a
MkB (StateT s m b -> BaseBuilder m s prev next b)
-> StateT s m b -> BaseBuilder m s prev next b
forall a b. (a -> b) -> a -> b
$ Prelude.do
a <- StateT s m a
f1
unB (f2 a)
{-# INLINE (>>) #-}
(>>) :: (Monad m) => BaseBuilder m s prev curr a -> BaseBuilder m s curr next b -> BaseBuilder m s prev next b
>> :: forall {k} (m :: * -> *) s (prev :: k) (curr :: k) a (next :: k) b.
Monad m =>
BaseBuilder m s prev curr a
-> BaseBuilder m s curr next b -> BaseBuilder m s prev next b
(>>) BaseBuilder m s prev curr a
f1 BaseBuilder m s curr next b
f2 = BaseBuilder m s prev curr a
f1 BaseBuilder m s prev curr a
-> (a -> BaseBuilder m s curr next b)
-> BaseBuilder m s prev next b
forall {k} (m :: * -> *) s (prev :: k) (curr :: k) a (next :: k) b.
Monad m =>
BaseBuilder m s prev curr a
-> (a -> BaseBuilder m s curr next b)
-> BaseBuilder m s prev next b
>>= BaseBuilder m s curr next b -> a -> BaseBuilder m s curr next b
forall a b. a -> b -> a
const BaseBuilder m s curr next b
f2
fail :: (MonadFail m) => String -> BaseBuilder m s prev curr a
fail :: forall {k} (m :: * -> *) s (prev :: k) (curr :: k) a.
MonadFail m =>
String -> BaseBuilder m s prev curr a
fail String
s = StateT s m a -> BaseBuilder m s prev curr a
forall k (m :: * -> *) s (prev :: k) (next :: k) a.
StateT s m a -> BaseBuilder m s prev next a
MkB (StateT s m a -> BaseBuilder m s prev curr a)
-> StateT s m a -> BaseBuilder m s prev curr a
forall a b. (a -> b) -> a -> b
$ String -> StateT s m a
forall a. String -> StateT s m a
forall (m :: * -> *) a. MonadFail m => String -> m a
Prelude.fail String
s