-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | Pointed and copointed data
--   
--   Pointed and copointed data.
@package pointed
@version 5.0.5

module Data.Copointed

-- | Copointed does not require a Functor, as the only
--   relationship between copoint and fmap is given by a free
--   theorem.
class Copointed (p :: Type -> Type)
copoint :: Copointed p => p a -> a
instance (Data.Copointed.Copointed f, Data.Copointed.Copointed g) => Data.Copointed.Copointed (f GHC.Internal.Generics.:+: g)
instance (Data.Copointed.Copointed f, Data.Copointed.Copointed g) => Data.Copointed.Copointed (f GHC.Internal.Generics.:.: g)
instance Data.Copointed.Copointed (Data.Semigroup.Arg a)
instance Data.Copointed.Copointed f => Data.Copointed.Copointed (Control.Applicative.Backwards.Backwards f)
instance (Data.Copointed.Copointed p, Data.Copointed.Copointed q) => Data.Copointed.Copointed (Data.Functor.Compose.Compose p q)
instance Data.Copointed.Copointed GHC.Internal.Data.Semigroup.Internal.Dual
instance Data.Copointed.Copointed w => Data.Copointed.Copointed (Control.Comonad.Trans.Env.EnvT e w)
instance Data.Default.Internal.Default m => Data.Copointed.Copointed ((->) m)
instance Data.Copointed.Copointed Data.Semigroup.First
instance Data.Copointed.Copointed GHC.Internal.Data.Functor.Identity.Identity
instance Data.Copointed.Copointed m => Data.Copointed.Copointed (Control.Monad.Trans.Identity.IdentityT m)
instance Data.Copointed.Copointed Data.Semigroup.Last
instance Data.Copointed.Copointed f => Data.Copointed.Copointed (Control.Applicative.Lift.Lift f)
instance Data.Copointed.Copointed f => Data.Copointed.Copointed (GHC.Internal.Generics.M1 i c f)
instance Data.Copointed.Copointed Data.Semigroup.Max
instance Data.Copointed.Copointed f => Data.Copointed.Copointed (Data.Functor.Bind.Class.MaybeApply f)
instance Data.Copointed.Copointed Data.Semigroup.Min
instance Data.Copointed.Copointed GHC.Internal.Base.NonEmpty
instance Data.Copointed.Copointed GHC.Internal.Generics.Par1
instance Data.Copointed.Copointed GHC.Internal.Data.Semigroup.Internal.Product
instance Data.Copointed.Copointed f => Data.Copointed.Copointed (GHC.Internal.Generics.Rec1 f)
instance Data.Copointed.Copointed f => Data.Copointed.Copointed (Data.Functor.Reverse.Reverse f)
instance Data.Copointed.Copointed w => Data.Copointed.Copointed (Control.Comonad.Trans.Store.StoreT s w)
instance Data.Copointed.Copointed GHC.Internal.Data.Semigroup.Internal.Sum
instance (Data.Copointed.Copointed f, Data.Copointed.Copointed g) => Data.Copointed.Copointed (Data.Functor.Sum.Sum f g)
instance Data.Copointed.Copointed (Data.Tagged.Tagged a)
instance (Data.Default.Internal.Default m, Data.Copointed.Copointed w) => Data.Copointed.Copointed (Control.Comonad.Trans.Traced.TracedT m w)
instance Data.Copointed.Copointed Data.Tree.Tree
instance Data.Copointed.Copointed ((,) a)
instance Data.Copointed.Copointed ((,,) a b)
instance Data.Copointed.Copointed ((,,,) a b c)
instance Data.Copointed.Copointed f => Data.Copointed.Copointed (Data.Functor.Bind.Class.WrappedApplicative f)
instance Data.Copointed.Copointed m => Data.Copointed.Copointed (Control.Applicative.WrappedMonad m)
instance Data.Copointed.Copointed Data.Semigroup.WrappedMonoid
instance Data.Copointed.Copointed m => Data.Copointed.Copointed (Control.Monad.Trans.Writer.Strict.WriterT w m)
instance Data.Copointed.Copointed m => Data.Copointed.Copointed (Control.Monad.Trans.Writer.Lazy.WriterT w m)

module Data.Pointed
class Pointed (p :: Type -> Type)
point :: Pointed p => a -> p a
instance (Data.Pointed.Pointed f, Data.Pointed.Pointed g) => Data.Pointed.Pointed (f GHC.Internal.Generics.:*: g)
instance (Data.Pointed.Pointed f, Data.Pointed.Pointed g) => Data.Pointed.Pointed (f GHC.Internal.Generics.:.: g)
instance Data.Default.Internal.Default a => Data.Pointed.Pointed (Data.Semigroup.Arg a)
instance Data.Pointed.Pointed f => Data.Pointed.Pointed (Control.Applicative.Backwards.Backwards f)
instance Data.Pointed.Pointed (Control.Comonad.Cokleisli w a)
instance (Data.Pointed.Pointed p, Data.Pointed.Pointed q) => Data.Pointed.Pointed (Data.Functor.Compose.Compose p q)
instance Data.Default.Internal.Default m => Data.Pointed.Pointed (GHC.Internal.Data.Functor.Const.Const m)
instance Data.Default.Internal.Default m => Data.Pointed.Pointed (Data.Functor.Constant.Constant m)
instance Data.Pointed.Pointed (Control.Monad.Trans.Cont.ContT r m)
instance (GHC.Internal.Base.Functor g, g GHC.Types.~ h) => Data.Pointed.Pointed (Data.Functor.Day.Curried.Curried g h)
instance Data.Pointed.Pointed GHC.Internal.Data.Semigroup.Internal.Dual
instance Data.Pointed.Pointed (GHC.Internal.Data.Either.Either a)
instance Data.Pointed.Pointed GHC.Internal.Data.Semigroup.Internal.Endo
instance Data.Pointed.Pointed m => Data.Pointed.Pointed (Control.Monad.Trans.Except.ExceptT e m)
instance Data.Pointed.Pointed ((->) e)
instance Data.Pointed.Pointed Data.Semigroup.First
instance Data.Pointed.Pointed GHC.Internal.Data.Monoid.First
instance (Data.Default.Internal.Default k, Data.Hashable.Class.Hashable k) => Data.Pointed.Pointed (Data.HashMap.Internal.HashMap k)
instance Data.Pointed.Pointed GHC.Types.IO
instance Data.Pointed.Pointed GHC.Internal.Data.Functor.Identity.Identity
instance Data.Pointed.Pointed m => Data.Pointed.Pointed (Control.Monad.Trans.Identity.IdentityT m)
instance Data.Pointed.Pointed Data.Semigroup.Last
instance Data.Pointed.Pointed GHC.Internal.Data.Monoid.Last
instance Data.Pointed.Pointed (Control.Applicative.Lift.Lift f)
instance Data.Pointed.Pointed []
instance Data.Pointed.Pointed f => Data.Pointed.Pointed (GHC.Internal.Generics.M1 i c f)
instance Data.Default.Internal.Default k => Data.Pointed.Pointed (Data.Map.Internal.Map k)
instance Data.Pointed.Pointed Data.Semigroup.Max
instance Data.Pointed.Pointed GHC.Internal.Maybe.Maybe
instance Data.Pointed.Pointed (Data.Functor.Bind.Class.MaybeApply f)
instance Data.Pointed.Pointed m => Data.Pointed.Pointed (Control.Monad.Trans.Maybe.MaybeT m)
instance Data.Pointed.Pointed Data.Semigroup.Min
instance Data.Pointed.Pointed GHC.Internal.Base.NonEmpty
instance Data.Pointed.Pointed GHC.Internal.Generics.Par1
instance (Data.Pointed.Pointed p, Data.Pointed.Pointed q) => Data.Pointed.Pointed (Data.Functor.Product.Product p q)
instance Data.Pointed.Pointed GHC.Internal.Data.Semigroup.Internal.Product
instance Data.Pointed.Pointed GHC.Internal.Data.Proxy.Proxy
instance (Data.Default.Internal.Default w, Data.Pointed.Pointed m) => Data.Pointed.Pointed (Control.Monad.Trans.RWS.Strict.RWST r w s m)
instance (Data.Default.Internal.Default w, Data.Pointed.Pointed m) => Data.Pointed.Pointed (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
instance Data.Pointed.Pointed m => Data.Pointed.Pointed (Control.Monad.Trans.Reader.ReaderT r m)
instance Data.Pointed.Pointed f => Data.Pointed.Pointed (GHC.Internal.Generics.Rec1 f)
instance Data.Pointed.Pointed f => Data.Pointed.Pointed (Data.Functor.Reverse.Reverse f)
instance Data.Pointed.Pointed GHC.Internal.Conc.Sync.STM
instance Data.Pointed.Pointed Data.Sequence.Internal.Seq
instance Data.Pointed.Pointed Data.Set.Internal.Set
instance Data.Pointed.Pointed m => Data.Pointed.Pointed (Control.Monad.Trans.State.Strict.StateT s m)
instance Data.Pointed.Pointed m => Data.Pointed.Pointed (Control.Monad.Trans.State.Lazy.StateT s m)
instance Data.Pointed.Pointed m => Data.Pointed.Pointed (Data.Semigroupoid.Static.Static m a)
instance Data.Pointed.Pointed GHC.Internal.Data.Semigroup.Internal.Sum
instance Data.Pointed.Pointed (Data.Tagged.Tagged a)
instance Data.Pointed.Pointed Data.Tree.Tree
instance Data.Default.Internal.Default e => Data.Pointed.Pointed ((,) e)
instance Data.Pointed.Pointed GHC.Internal.Generics.U1
instance Data.Pointed.Pointed Data.Sequence.Internal.ViewL
instance Data.Pointed.Pointed Data.Sequence.Internal.ViewR
instance Data.Pointed.Pointed f => Data.Pointed.Pointed (Data.Functor.Bind.Class.WrappedApplicative f)
instance GHC.Internal.Control.Arrow.Arrow a => Data.Pointed.Pointed (Control.Applicative.WrappedArrow a b)
instance GHC.Internal.Base.Monad m => Data.Pointed.Pointed (Control.Applicative.WrappedMonad m)
instance Data.Pointed.Pointed Data.Semigroup.WrappedMonoid
instance (Data.Default.Internal.Default w, Data.Pointed.Pointed m) => Data.Pointed.Pointed (Control.Monad.Trans.Writer.Strict.WriterT w m)
instance (Data.Default.Internal.Default w, Data.Pointed.Pointed m) => Data.Pointed.Pointed (Control.Monad.Trans.Writer.Lazy.WriterT w m)
instance Data.Pointed.Pointed GHC.Internal.Functor.ZipList.ZipList
