pointed-5.0.1: Pointed and copointed data

Safe HaskellSafe
LanguageHaskell98

Data.Copointed

Synopsis

Documentation

class Copointed p where #

Copointed does not require a Functor, as the only relationship between copoint and fmap is given by a free theorem.

Minimal complete definition

copoint

Methods

copoint :: p a -> a #

Instances

Copointed Par1 # 

Methods

copoint :: Par1 a -> a #

Copointed Min # 

Methods

copoint :: Min a -> a #

Copointed Max # 

Methods

copoint :: Max a -> a #

Copointed First # 

Methods

copoint :: First a -> a #

Copointed Last # 

Methods

copoint :: Last a -> a #

Copointed WrappedMonoid # 

Methods

copoint :: WrappedMonoid a -> a #

Copointed NonEmpty # 

Methods

copoint :: NonEmpty a -> a #

Copointed Identity # 

Methods

copoint :: Identity a -> a #

Copointed Dual # 

Methods

copoint :: Dual a -> a #

Copointed Sum # 

Methods

copoint :: Sum a -> a #

Copointed Product # 

Methods

copoint :: Product a -> a #

Copointed Tree # 

Methods

copoint :: Tree a -> a #

Copointed ((,) a) # 

Methods

copoint :: (a, a) -> a #

Copointed (Arg a) # 

Methods

copoint :: Arg a a -> a #

Copointed m => Copointed (WrappedMonad m) # 

Methods

copoint :: WrappedMonad m a -> a #

Copointed f => Copointed (WrappedApplicative f) # 

Methods

copoint :: WrappedApplicative f a -> a #

Copointed f => Copointed (MaybeApply f) # 

Methods

copoint :: MaybeApply f a -> a #

Copointed f => Copointed (Lift f) # 

Methods

copoint :: Lift f a -> a #

Copointed f => Copointed (Rec1 * f) # 

Methods

copoint :: Rec1 * f a -> a #

Copointed ((,,) a b) # 

Methods

copoint :: (a, b, a) -> a #

(Default m, Copointed w) => Copointed (TracedT m w) # 

Methods

copoint :: TracedT m w a -> a #

Copointed w => Copointed (StoreT s w) # 

Methods

copoint :: StoreT s w a -> a #

Copointed w => Copointed (EnvT e w) # 

Methods

copoint :: EnvT e w a -> a #

Copointed m => Copointed (IdentityT * m) # 

Methods

copoint :: IdentityT * m a -> a #

Copointed m => Copointed (WriterT w m) # 

Methods

copoint :: WriterT w m a -> a #

Copointed m => Copointed (WriterT w m) # 

Methods

copoint :: WriterT w m a -> a #

Copointed (Tagged * a) # 

Methods

copoint :: Tagged * a a -> a #

Copointed f => Copointed (Reverse * f) # 

Methods

copoint :: Reverse * f a -> a #

Copointed f => Copointed (Backwards * f) # 

Methods

copoint :: Backwards * f a -> a #

Default m => Copointed ((->) LiftedRep LiftedRep m) # 

Methods

copoint :: (LiftedRep -> LiftedRep) m a -> a #

(Copointed f, Copointed g) => Copointed ((:+:) * f g) # 

Methods

copoint :: (* :+: f) g a -> a #

Copointed ((,,,) a b c) # 

Methods

copoint :: (a, b, c, a) -> a #

(Copointed f, Copointed g) => Copointed (Sum * f g) # 

Methods

copoint :: Sum * f g a -> a #

Copointed f => Copointed (M1 * i c f) # 

Methods

copoint :: M1 * i c f a -> a #

(Copointed f, Copointed g) => Copointed ((:.:) * * f g) # 

Methods

copoint :: (* :.: *) f g a -> a #

(Copointed p, Copointed q) => Copointed (Compose * * p q) # 

Methods

copoint :: Compose * * p q a -> a #