data-effects-core-0.1.0.0: A basic framework for effect systems based on effects represented by GADTs.
Copyright(c) 2023-2024 Yamada Ryo
LicenseMPL-2.0 (see the file LICENSE)
Maintainerymdfield@outlook.jp
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageGHC2021

Data.Effect.Tag

Description

 
Synopsis

Documentation

newtype Tag (ins :: InsClass) tag a Source #

Tagged instruction class.

Constructors

Tag 

Fields

Instances

Instances details
Foldable ins => Foldable (Tag ins tag) Source # 
Instance details

Defined in Data.Effect.Tag

Methods

fold :: Monoid m => Tag ins tag m -> m #

foldMap :: Monoid m => (a -> m) -> Tag ins tag a -> m #

foldMap' :: Monoid m => (a -> m) -> Tag ins tag a -> m #

foldr :: (a -> b -> b) -> b -> Tag ins tag a -> b #

foldr' :: (a -> b -> b) -> b -> Tag ins tag a -> b #

foldl :: (b -> a -> b) -> b -> Tag ins tag a -> b #

foldl' :: (b -> a -> b) -> b -> Tag ins tag a -> b #

foldr1 :: (a -> a -> a) -> Tag ins tag a -> a #

foldl1 :: (a -> a -> a) -> Tag ins tag a -> a #

toList :: Tag ins tag a -> [a] #

null :: Tag ins tag a -> Bool #

length :: Tag ins tag a -> Int #

elem :: Eq a => a -> Tag ins tag a -> Bool #

maximum :: Ord a => Tag ins tag a -> a #

minimum :: Ord a => Tag ins tag a -> a #

sum :: Num a => Tag ins tag a -> a #

product :: Num a => Tag ins tag a -> a #

Traversable ins => Traversable (Tag ins tag) Source # 
Instance details

Defined in Data.Effect.Tag

Methods

traverse :: Applicative f => (a -> f b) -> Tag ins tag a -> f (Tag ins tag b) #

sequenceA :: Applicative f => Tag ins tag (f a) -> f (Tag ins tag a) #

mapM :: Monad m => (a -> m b) -> Tag ins tag a -> m (Tag ins tag b) #

sequence :: Monad m => Tag ins tag (m a) -> m (Tag ins tag a) #

Functor ins => Functor (Tag ins tag) Source # 
Instance details

Defined in Data.Effect.Tag

Methods

fmap :: (a -> b) -> Tag ins tag a -> Tag ins tag b #

(<$) :: a -> Tag ins tag b -> Tag ins tag a #

type (#) = Tag infixl 8 Source #

Tagged instruction class.

pattern T :: forall tag ins a. ins a -> Tag ins tag a Source #

Tagged instruction class.

newtype TagH (sig :: SigClass) tag f a Source #

Tagged signature class.

Constructors

TagH 

Fields

Instances

Instances details
HFunctor sig => HFunctor (TagH sig tag) Source # 
Instance details

Defined in Data.Effect.Tag

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> TagH sig tag f :-> TagH sig tag g #

Foldable (sig f) => Foldable (TagH sig tag f) Source # 
Instance details

Defined in Data.Effect.Tag

Methods

fold :: Monoid m => TagH sig tag f m -> m #

foldMap :: Monoid m => (a -> m) -> TagH sig tag f a -> m #

foldMap' :: Monoid m => (a -> m) -> TagH sig tag f a -> m #

foldr :: (a -> b -> b) -> b -> TagH sig tag f a -> b #

foldr' :: (a -> b -> b) -> b -> TagH sig tag f a -> b #

foldl :: (b -> a -> b) -> b -> TagH sig tag f a -> b #

foldl' :: (b -> a -> b) -> b -> TagH sig tag f a -> b #

foldr1 :: (a -> a -> a) -> TagH sig tag f a -> a #

foldl1 :: (a -> a -> a) -> TagH sig tag f a -> a #

toList :: TagH sig tag f a -> [a] #

null :: TagH sig tag f a -> Bool #

length :: TagH sig tag f a -> Int #

elem :: Eq a => a -> TagH sig tag f a -> Bool #

maximum :: Ord a => TagH sig tag f a -> a #

minimum :: Ord a => TagH sig tag f a -> a #

sum :: Num a => TagH sig tag f a -> a #

product :: Num a => TagH sig tag f a -> a #

Traversable (sig f) => Traversable (TagH sig tag f) Source # 
Instance details

Defined in Data.Effect.Tag

Methods

traverse :: Applicative f0 => (a -> f0 b) -> TagH sig tag f a -> f0 (TagH sig tag f b) #

sequenceA :: Applicative f0 => TagH sig tag f (f0 a) -> f0 (TagH sig tag f a) #

mapM :: Monad m => (a -> m b) -> TagH sig tag f a -> m (TagH sig tag f b) #

sequence :: Monad m => TagH sig tag f (m a) -> m (TagH sig tag f a) #

Functor (sig f) => Functor (TagH sig tag f) Source # 
Instance details

Defined in Data.Effect.Tag

Methods

fmap :: (a -> b) -> TagH sig tag f a -> TagH sig tag f b #

(<$) :: a -> TagH sig tag f b -> TagH sig tag f a #

type (##) = TagH infixl 8 Source #

Tagged signature class.

pattern TH :: forall tag sig f a. sig f a -> TagH sig tag f a Source #

Tagged signature class.