pointed-5: Pointed and copointed data

Safe Haskell | Safe
Language | Haskell98

Data.Copointed

Synopsis

- class Copointed p where

# 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 Identity # |
Methods copoint :: Identity 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 Dual # |
Methods copoint :: Dual a -> a #
Copointed Sum # |
Methods copoint :: Sum a -> a #
Copointed Tree # |
Methods copoint :: Tree a -> a #
Default m => Copointed ((->) m) # |
Methods copoint :: (m -> 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 ((,,) 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 #
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 p, Copointed q) => Copointed (Compose * * p q) # |
Methods copoint :: Compose * * p q a -> a #