bowtie-0.3.1: Tying knots in polynomial functors
Safe HaskellSafe-Inferred
LanguageGHC2021

Bowtie.Rewrite

Documentation

data AnnoErr k e Source #

Constructors

AnnoErr 

Fields

Instances

Instances details
(Show k, Typeable k, Show e, Typeable e) => Exception (AnnoErr k e) Source # 
Instance details

Defined in Bowtie.Rewrite

(Show k, Show e) => Show (AnnoErr k e) Source # 
Instance details

Defined in Bowtie.Rewrite

Methods

showsPrec :: Int -> AnnoErr k e -> ShowS #

show :: AnnoErr k e -> String #

showList :: [AnnoErr k e] -> ShowS #

(Eq k, Eq e) => Eq (AnnoErr k e) Source # 
Instance details

Defined in Bowtie.Rewrite

Methods

(==) :: AnnoErr k e -> AnnoErr k e -> Bool #

(/=) :: AnnoErr k e -> AnnoErr k e -> Bool #

(Ord k, Ord e) => Ord (AnnoErr k e) Source # 
Instance details

Defined in Bowtie.Rewrite

Methods

compare :: AnnoErr k e -> AnnoErr k e -> Ordering #

(<) :: AnnoErr k e -> AnnoErr k e -> Bool #

(<=) :: AnnoErr k e -> AnnoErr k e -> Bool #

(>) :: AnnoErr k e -> AnnoErr k e -> Bool #

(>=) :: AnnoErr k e -> AnnoErr k e -> Bool #

max :: AnnoErr k e -> AnnoErr k e -> AnnoErr k e #

min :: AnnoErr k e -> AnnoErr k e -> AnnoErr k e #

newtype RwT k e m a Source #

Constructors

RwT 

Fields

Instances

Instances details
MonadReader r m => MonadReader r (RwT k e m) Source # 
Instance details

Defined in Bowtie.Rewrite

Methods

ask :: RwT k e m r #

local :: (r -> r) -> RwT k e m a -> RwT k e m a #

reader :: (r -> a) -> RwT k e m a #

MonadState s m => MonadState s (RwT k e m) Source # 
Instance details

Defined in Bowtie.Rewrite

Methods

get :: RwT k e m s #

put :: s -> RwT k e m () #

state :: (s -> (a, s)) -> RwT k e m a #

MonadTrans (RwT k e) Source # 
Instance details

Defined in Bowtie.Rewrite

Methods

lift :: Monad m => m a -> RwT k e m a #

MonadIO m => MonadIO (RwT k e m) Source # 
Instance details

Defined in Bowtie.Rewrite

Methods

liftIO :: IO a -> RwT k e m a #

Monad m => Applicative (RwT k e m) Source # 
Instance details

Defined in Bowtie.Rewrite

Methods

pure :: a -> RwT k e m a #

(<*>) :: RwT k e m (a -> b) -> RwT k e m a -> RwT k e m b #

liftA2 :: (a -> b -> c) -> RwT k e m a -> RwT k e m b -> RwT k e m c #

(*>) :: RwT k e m a -> RwT k e m b -> RwT k e m b #

(<*) :: RwT k e m a -> RwT k e m b -> RwT k e m a #

Functor m => Functor (RwT k e m) Source # 
Instance details

Defined in Bowtie.Rewrite

Methods

fmap :: (a -> b) -> RwT k e m a -> RwT k e m b #

(<$) :: a -> RwT k e m b -> RwT k e m a #

Monad m => Monad (RwT k e m) Source # 
Instance details

Defined in Bowtie.Rewrite

Methods

(>>=) :: RwT k e m a -> (a -> RwT k e m b) -> RwT k e m b #

(>>) :: RwT k e m a -> RwT k e m b -> RwT k e m b #

return :: a -> RwT k e m a #

type Rw k e = RwT k e Identity Source #

runRwT :: RwT k e m a -> k -> m (Either (AnnoErr k e) a) Source #

runRw :: Rw k e a -> k -> Either (AnnoErr k e) a Source #

embedRwT :: m (Either (AnnoErr k e) a) -> RwT k e m a Source #

embedRw :: Either (AnnoErr k e) a -> Rw k e a Source #

pushRw :: Monad m => k -> RwT k e m a -> RwT k e m a Source #

peekRw :: Monad m => RwT k e m k Source #

peeksRw :: Monad m => (k -> a) -> RwT k e m a Source #

askRw :: Monad m => RwT k e m (NESeq k) Source #

asksRw :: Monad m => (NESeq k -> a) -> RwT k e m a Source #

throwRw :: Monad m => e -> RwT k e m a Source #

wrapRw :: g a (Jot g k a) -> Rw k e (Jot g k a) Source #

jotRw :: Bitraversable g => (g a z -> Rw k e z) -> Jot g k a -> Either (AnnoErr k e) z Source #

jotRwT :: (Monad m, Bitraversable g) => (g a (RwT k e m z) -> RwT k e m z) -> Jot g k a -> m (Either (AnnoErr k e) z) Source #