data-effects-core-0.4.2.0: A basic framework for effect systems based on effects represented by GADTs.
Copyright(c) 2023-2024 Sayo contributors
LicenseMPL-2.0 (see the file LICENSE)
Maintainerymdfield@outlook.jp
Safe HaskellNone
LanguageGHC2021

Data.Effect.Tag

Description

 
Synopsis

Documentation

newtype Tagged (tag :: k) (e :: Effect) (f :: Type -> Type) a Source #

Tagged effect.

Constructors

Tag 

Fields

Instances

Instances details
FirstOrder e => FirstOrder (Tagged tag e) Source # 
Instance details

Defined in Data.Effect.Tag

HFunctor e => HFunctor (Tagged tag e) Source # 
Instance details

Defined in Data.Effect.Tag

Methods

hfmap :: (forall x. f x -> g x) -> Tagged tag e f a -> Tagged tag e g a Source #

Foldable (e f) => Foldable (Tagged tag e f) Source # 
Instance details

Defined in Data.Effect.Tag

Methods

fold :: Monoid m => Tagged tag e f m -> m #

foldMap :: Monoid m => (a -> m) -> Tagged tag e f a -> m #

foldMap' :: Monoid m => (a -> m) -> Tagged tag e f a -> m #

foldr :: (a -> b -> b) -> b -> Tagged tag e f a -> b #

foldr' :: (a -> b -> b) -> b -> Tagged tag e f a -> b #

foldl :: (b -> a -> b) -> b -> Tagged tag e f a -> b #

foldl' :: (b -> a -> b) -> b -> Tagged tag e f a -> b #

foldr1 :: (a -> a -> a) -> Tagged tag e f a -> a #

foldl1 :: (a -> a -> a) -> Tagged tag e f a -> a #

toList :: Tagged tag e f a -> [a] #

null :: Tagged tag e f a -> Bool #

length :: Tagged tag e f a -> Int #

elem :: Eq a => a -> Tagged tag e f a -> Bool #

maximum :: Ord a => Tagged tag e f a -> a #

minimum :: Ord a => Tagged tag e f a -> a #

sum :: Num a => Tagged tag e f a -> a #

product :: Num a => Tagged tag e f a -> a #

Traversable (e f) => Traversable (Tagged tag e f) Source # 
Instance details

Defined in Data.Effect.Tag

Methods

traverse :: Applicative f0 => (a -> f0 b) -> Tagged tag e f a -> f0 (Tagged tag e f b) #

sequenceA :: Applicative f0 => Tagged tag e f (f0 a) -> f0 (Tagged tag e f a) #

mapM :: Monad m => (a -> m b) -> Tagged tag e f a -> m (Tagged tag e f b) #

sequence :: Monad m => Tagged tag e f (m a) -> m (Tagged tag e f a) #

Functor (e f) => Functor (Tagged tag e f) Source # 
Instance details

Defined in Data.Effect.Tag

Methods

fmap :: (a -> b) -> Tagged tag e f a -> Tagged tag e f b #

(<$) :: a -> Tagged tag e f b -> Tagged tag e f a #

type LabelOf (Tagged tag e) Source # 
Instance details

Defined in Data.Effect.Tag

type LabelOf (Tagged tag e) = TaggedLabel tag (LabelOf e)
type OrderOf (Tagged tag e) Source # 
Instance details

Defined in Data.Effect.Tag

type OrderOf (Tagged tag e) = OrderOf e

data TaggedLabel (tag :: k) label Source #

type (#) (e :: Effect) (tag :: k) = Tagged tag e infixl 7 Source #

Tagged effect.