vitrea-0.1.0.0: Profunctor optics via the profunctor representation theorem.

Copyright(c) Mario Román 2020
LicenseGPL-3
Maintainermromang08@gmail.com
Stabilityexperimental
PortabilityPOSIX
Safe HaskellSafe
LanguageHaskell2010

CategoriesInstances

Contents

Description

Provides instances for the definition of category constrained on the objects.

Documentation

class Any x Source #

Instances
Any (x :: k) Source # 
Instance details

Defined in CategoriesInstances

Monad m => Bifunctor (Algebra m :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Algebra m x1, Algebra m x2, Any y1, Any y2) => (x1 -> x2) -> (y1 -> y2) -> (x1, y1) -> (x2, y2) Source #

Bifunctor (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Either Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Any x1, Any x2, Any y1, Any y2) => (x1 -> x2) -> (y1 -> y2) -> Either x1 y1 -> Either x2 y2 Source #

Bifunctor (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Any x1, Any x2, Any y1, Any y2) => (x1 -> x2) -> (y1 -> y2) -> (x1, y1) -> (x2, y2) Source #

Monad m => Bifunctor (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) (Kleisli m :: Type -> Type -> Type) (Any :: Type -> Constraint) (Kleisli m :: Type -> Type -> Type) (,) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Any x1, Any x2, Any y1, Any y2) => (x1 -> x2) -> Kleisli m y1 y2 -> Kleisli m (x1, y1) (x2, y2) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Algebra []) ((->) :: Type -> Type -> Type) (,) () (,) (,) (Aggregating a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Algebra [] w) => Aggregating a b x y -> Aggregating a b (w, x) (w, y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Either Void Either Either (Replacing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Any w) => Replacing a b x y -> Replacing a b (Either w x) (Either w y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Either Void Either Either (Setting a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Any w) => Setting a b x y -> Setting a b (Either w x) (Either w y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () (,) (,) (Replacing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Any w) => Replacing a b x y -> Replacing a b (w, x) (w, y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () (,) (,) (Setting a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Any w) => Setting a b x y -> Setting a b (w, x) (w, y) Source #

Monad m => Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Algebra m :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () (,) (,) (Classifying m a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Algebra m w) => Classifying m a b x y -> Classifying m a b (w, x) (w, y) Source #

Monad m => Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Algebra m :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () (,) (,) (Viewing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Algebra m w) => Viewing a b x y -> Viewing a b (w, x) (w, y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Either Void Either Either (Previewing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Any w) => Previewing a b x y -> Previewing a b (Either w x) (Either w y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () (,) (,) (Previewing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Any w) => Previewing a b x y -> Previewing a b (w, x) (w, y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () (,) (,) (Viewing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Any w) => Viewing a b x y -> Viewing a b (w, x) (w, y) Source #

Monad m => Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) (Kleisli m :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () (,) (,) (Updating m a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Any w) => Updating m a b x y -> Updating m a b (w, x) (w, y) Source #

Monad m => MonoidalAction (Algebra m :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) Source # 
Instance details

Defined in CategoriesInstances

Methods

unitor :: Any x => ((), x) -> x Source #

unitorinv :: Any x => x -> ((), x) Source #

multiplicator :: (Any x, Algebra m p, Algebra m q) => (p, (q, x)) -> ((p, q), x) Source #

multiplicatorinv :: (Any x, Algebra m p, Algebra m q) => ((p, q), x) -> (p, (q, x)) Source #

Monad m => MonoidalAction (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () (Any :: Type -> Constraint) (Kleisli m :: Type -> Type -> Type) (,) Source # 
Instance details

Defined in CategoriesInstances

Methods

unitor :: Any x => Kleisli m ((), x) x Source #

unitorinv :: Any x => Kleisli m x ((), x) Source #

multiplicator :: (Any x, Any p, Any q) => Kleisli m (p, (q, x)) ((p, q), x) Source #

multiplicatorinv :: (Any x, Any p, Any q) => Kleisli m ((p, q), x) (p, (q, x)) Source #

Profunctor (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Replacing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

dimap :: (Any x1, Any x2, Any y1, Any y2) => (x2 -> x1) -> (y1 -> y2) -> Replacing a b x1 y1 -> Replacing a b x2 y2 Source #

Profunctor (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Aggregating a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

dimap :: (Any x1, Any x2, Any y1, Any y2) => (x2 -> x1) -> (y1 -> y2) -> Aggregating a b x1 y1 -> Aggregating a b x2 y2 Source #

Profunctor (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Setting a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

dimap :: (Any x1, Any x2, Any y1, Any y2) => (x2 -> x1) -> (y1 -> y2) -> Setting a b x1 y1 -> Setting a b x2 y2 Source #

Monad m => Profunctor (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Updating m a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

dimap :: (Any x1, Any x2, Any y1, Any y2) => (x2 -> x1) -> (y1 -> y2) -> Updating m a b x1 y1 -> Updating m a b x2 y2 Source #

Monad m => Profunctor (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Classifying m a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

dimap :: (Any x1, Any x2, Any y1, Any y2) => (x2 -> x1) -> (y1 -> y2) -> Classifying m a b x1 y1 -> Classifying m a b x2 y2 Source #

Profunctor (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Previewing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

dimap :: (Any x1, Any x2, Any y1, Any y2) => (x2 -> x1) -> (y1 -> y2) -> Previewing a b x1 y1 -> Previewing a b x2 y2 Source #

Profunctor (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Viewing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

dimap :: (Any x1, Any x2, Any y1, Any y2) => (x2 -> x1) -> (y1 -> y2) -> Viewing a b x1 y1 -> Viewing a b x2 y2 Source #

Monad m => Profunctor (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) (Kleisli m :: Type -> Type -> Type) (Updating m a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

dimap :: (Any x1, Any x2, Any y1, Any y2) => (x2 -> x1) -> Kleisli m y1 y2 -> Updating m a b x1 y1 -> Updating m a b x2 y2 Source #

Category (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unit :: Any x => x -> x Source #

comp :: Any x => (y -> z) -> (x -> y) -> x -> z Source #

Monad m => Category (Any :: Type -> Constraint) (Kleisli m :: Type -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unit :: Any x => Kleisli m x x Source #

comp :: Any x => Kleisli m y z -> Kleisli m x y -> Kleisli m x z Source #

MonoidalCategory (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Either Void Source # 
Instance details

Defined in CategoriesInstances

Methods

alpha :: (Any x, Any y, Any z) => Either x (Either y z) -> Either (Either x y) z Source #

alphainv :: (Any x, Any y, Any z) => Either (Either x y) z -> Either x (Either y z) Source #

lambda :: Any x => Either x Void -> x Source #

lambdainv :: Any x => x -> Either x Void Source #

rho :: Any x => Either Void x -> x Source #

rhoinv :: Any x => x -> Either Void x Source #

MonoidalCategory (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () Source # 
Instance details

Defined in CategoriesInstances

Methods

alpha :: (Any x, Any y, Any z) => (x, (y, z)) -> ((x, y), z) Source #

alphainv :: (Any x, Any y, Any z) => ((x, y), z) -> (x, (y, z)) Source #

lambda :: Any x => (x, ()) -> x Source #

lambdainv :: Any x => x -> (x, ()) Source #

rho :: Any x => ((), x) -> x Source #

rhoinv :: Any x => x -> ((), x) Source #

MonoidalAction Functor (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unitor :: Any x => App Identity x -> x Source #

unitorinv :: Any x => x -> App Identity x Source #

multiplicator :: (Any x, Functor p, Functor q) => App p (App q x) -> App (Compose p q) x Source #

multiplicatorinv :: (Any x, Functor p, Functor q) => App (Compose p q) x -> App p (App q x) Source #

MonoidalAction Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unitor :: Any x => App Identity x -> x Source #

unitorinv :: Any x => x -> App Identity x Source #

multiplicator :: (Any x, Applicative p, Applicative q) => App p (App q x) -> App (Compose p q) x Source #

multiplicatorinv :: (Any x, Applicative p, Applicative q) => App (Compose p q) x -> App p (App q x) Source #

MonoidalAction Traversable (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unitor :: Any x => App Identity x -> x Source #

unitorinv :: Any x => x -> App Identity x Source #

multiplicator :: (Any x, Traversable p, Traversable q) => App p (App q x) -> App (Compose p q) x Source #

multiplicatorinv :: (Any x, Traversable p, Traversable q) => App (Compose p q) x -> App p (App q x) Source #

Bifunctor Functor (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Functor x1, Functor x2, Any y1, Any y2) => Nat x1 x2 -> (y1 -> y2) -> App x1 y1 -> App x2 y2 Source #

Bifunctor Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Applicative x1, Applicative x2, Any y1, Any y2) => Nat x1 x2 -> (y1 -> y2) -> App x1 y1 -> App x2 y2 Source #

Bifunctor Traversable (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Traversable x1, Traversable x2, Any y1, Any y2) => Nat x1 x2 -> (y1 -> y2) -> App x1 y1 -> App x2 y2 Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Functor (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (App :: (Type -> Type) -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) (Replacing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Functor w) => Replacing a b x y -> Replacing a b (App w x) (App w y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (App :: (Type -> Type) -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) (Replacing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Applicative w) => Replacing a b x y -> Replacing a b (App w x) (App w y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (App :: (Type -> Type) -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) (Aggregating a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Applicative w) => Aggregating a b x y -> Aggregating a b (App w x) (App w y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Traversable (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (App :: (Type -> Type) -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) (Replacing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Traversable w) => Replacing a b x y -> Replacing a b (App w x) (App w y) Source #

newtype Nat f g Source #

Constructors

Nat 

Fields

  • nat :: forall x. f x -> g x
     
Instances
Category Functor (Nat :: (Type -> Type) -> (Type -> Type) -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unit :: Functor x => Nat x x Source #

comp :: Functor x => Nat y z -> Nat x y -> Nat x z Source #

Category Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unit :: Applicative x => Nat x x Source #

comp :: Applicative x => Nat y z -> Nat x y -> Nat x z Source #

Category Traversable (Nat :: (Type -> Type) -> (Type -> Type) -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unit :: Traversable x => Nat x x Source #

comp :: Traversable x => Nat y z -> Nat x y -> Nat x z Source #

MonoidalCategory Functor (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity Source # 
Instance details

Defined in CategoriesInstances

MonoidalCategory Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity Source # 
Instance details

Defined in CategoriesInstances

MonoidalCategory Traversable (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity Source # 
Instance details

Defined in CategoriesInstances

MonoidalAction Functor (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unitor :: Any x => App Identity x -> x Source #

unitorinv :: Any x => x -> App Identity x Source #

multiplicator :: (Any x, Functor p, Functor q) => App p (App q x) -> App (Compose p q) x Source #

multiplicatorinv :: (Any x, Functor p, Functor q) => App (Compose p q) x -> App p (App q x) Source #

MonoidalAction Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unitor :: Any x => App Identity x -> x Source #

unitorinv :: Any x => x -> App Identity x Source #

multiplicator :: (Any x, Applicative p, Applicative q) => App p (App q x) -> App (Compose p q) x Source #

multiplicatorinv :: (Any x, Applicative p, Applicative q) => App (Compose p q) x -> App p (App q x) Source #

MonoidalAction Traversable (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unitor :: Any x => App Identity x -> x Source #

unitorinv :: Any x => x -> App Identity x Source #

multiplicator :: (Any x, Traversable p, Traversable q) => App p (App q x) -> App (Compose p q) x Source #

multiplicatorinv :: (Any x, Traversable p, Traversable q) => App (Compose p q) x -> App p (App q x) Source #

Bifunctor Functor (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Functor x1, Functor x2, Any y1, Any y2) => Nat x1 x2 -> (y1 -> y2) -> App x1 y1 -> App x2 y2 Source #

Bifunctor Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Applicative x1, Applicative x2, Any y1, Any y2) => Nat x1 x2 -> (y1 -> y2) -> App x1 y1 -> App x2 y2 Source #

Bifunctor Traversable (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Traversable x1, Traversable x2, Any y1, Any y2) => Nat x1 x2 -> (y1 -> y2) -> App x1 y1 -> App x2 y2 Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Functor (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (App :: (Type -> Type) -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) (Replacing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Functor w) => Replacing a b x y -> Replacing a b (App w x) (App w y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (App :: (Type -> Type) -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) (Replacing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Applicative w) => Replacing a b x y -> Replacing a b (App w x) (App w y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (App :: (Type -> Type) -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) (Aggregating a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Applicative w) => Aggregating a b x y -> Aggregating a b (App w x) (App w y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Traversable (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (App :: (Type -> Type) -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) (Replacing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Traversable w) => Replacing a b x y -> Replacing a b (App w x) (App w y) Source #

Bifunctor Functor (Nat :: (Type -> Type) -> (Type -> Type) -> Type) Functor (Nat :: (Type -> Type) -> (Type -> Type) -> Type) Functor (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Functor x1, Functor x2, Functor y1, Functor y2) => Nat x1 x2 -> Nat y1 y2 -> Nat (Compose x1 y1) (Compose x2 y2) Source #

Bifunctor Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Applicative x1, Applicative x2, Applicative y1, Applicative y2) => Nat x1 x2 -> Nat y1 y2 -> Nat (Compose x1 y1) (Compose x2 y2) Source #

Bifunctor Traversable (Nat :: (Type -> Type) -> (Type -> Type) -> Type) Traversable (Nat :: (Type -> Type) -> (Type -> Type) -> Type) Traversable (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Traversable x1, Traversable x2, Traversable y1, Traversable y2) => Nat x1 x2 -> Nat y1 y2 -> Nat (Compose x1 y1) (Compose x2 y2) Source #

newtype App f a Source #

Constructors

App 

Fields

Instances
MonoidalAction Functor (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unitor :: Any x => App Identity x -> x Source #

unitorinv :: Any x => x -> App Identity x Source #

multiplicator :: (Any x, Functor p, Functor q) => App p (App q x) -> App (Compose p q) x Source #

multiplicatorinv :: (Any x, Functor p, Functor q) => App (Compose p q) x -> App p (App q x) Source #

MonoidalAction Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unitor :: Any x => App Identity x -> x Source #

unitorinv :: Any x => x -> App Identity x Source #

multiplicator :: (Any x, Applicative p, Applicative q) => App p (App q x) -> App (Compose p q) x Source #

multiplicatorinv :: (Any x, Applicative p, Applicative q) => App (Compose p q) x -> App p (App q x) Source #

MonoidalAction Traversable (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unitor :: Any x => App Identity x -> x Source #

unitorinv :: Any x => x -> App Identity x Source #

multiplicator :: (Any x, Traversable p, Traversable q) => App p (App q x) -> App (Compose p q) x Source #

multiplicatorinv :: (Any x, Traversable p, Traversable q) => App (Compose p q) x -> App p (App q x) Source #

Bifunctor Functor (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Functor x1, Functor x2, Any y1, Any y2) => Nat x1 x2 -> (y1 -> y2) -> App x1 y1 -> App x2 y2 Source #

Bifunctor Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Applicative x1, Applicative x2, Any y1, Any y2) => Nat x1 x2 -> (y1 -> y2) -> App x1 y1 -> App x2 y2 Source #

Bifunctor Traversable (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Traversable x1, Traversable x2, Any y1, Any y2) => Nat x1 x2 -> (y1 -> y2) -> App x1 y1 -> App x2 y2 Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Functor (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (App :: (Type -> Type) -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) (Replacing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Functor w) => Replacing a b x y -> Replacing a b (App w x) (App w y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (App :: (Type -> Type) -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) (Replacing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Applicative w) => Replacing a b x y -> Replacing a b (App w x) (App w y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Applicative (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (App :: (Type -> Type) -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) (Aggregating a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Applicative w) => Aggregating a b x y -> Aggregating a b (App w x) (App w y) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) Traversable (Nat :: (Type -> Type) -> (Type -> Type) -> Type) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Identity (App :: (Type -> Type) -> Type -> Type) (App :: (Type -> Type) -> Type -> Type) (Replacing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Traversable w) => Replacing a b x y -> Replacing a b (App w x) (App w y) Source #

class Monad m => Algebra m a where Source #

Methods

algebra :: m a -> a Source #

Instances
Monad m => Algebra m () Source # 
Instance details

Defined in CategoriesInstances

Methods

algebra :: m () -> () Source #

Monad m => Algebra m (m a) Source # 
Instance details

Defined in CategoriesInstances

Methods

algebra :: m (m a) -> m a Source #

(Monad m, Algebra m x, Algebra m y) => Algebra m (x, y) Source # 
Instance details

Defined in CategoriesInstances

Methods

algebra :: m (x, y) -> (x, y) Source #

Monad m => Bifunctor (Algebra m :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Algebra m x1, Algebra m x2, Any y1, Any y2) => (x1 -> x2) -> (y1 -> y2) -> (x1, y1) -> (x2, y2) Source #

Monad m => Bifunctor (Algebra m :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Algebra m :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Algebra m :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Algebra m x1, Algebra m x2, Algebra m y1, Algebra m y2) => (x1 -> x2) -> (y1 -> y2) -> (x1, y1) -> (x2, y2) Source #

Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Algebra []) ((->) :: Type -> Type -> Type) (,) () (,) (,) (Aggregating a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Algebra [] w) => Aggregating a b x y -> Aggregating a b (w, x) (w, y) Source #

Monad m => Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Algebra m :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () (,) (,) (Classifying m a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Algebra m w) => Classifying m a b x y -> Classifying m a b (w, x) (w, y) Source #

Monad m => Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Algebra m :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () (,) (,) (Viewing a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Algebra m w) => Viewing a b x y -> Viewing a b (w, x) (w, y) Source #

Monad m => MonoidalAction (Algebra m :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) Source # 
Instance details

Defined in CategoriesInstances

Methods

unitor :: Any x => ((), x) -> x Source #

unitorinv :: Any x => x -> ((), x) Source #

multiplicator :: (Any x, Algebra m p, Algebra m q) => (p, (q, x)) -> ((p, q), x) Source #

multiplicatorinv :: (Any x, Algebra m p, Algebra m q) => ((p, q), x) -> (p, (q, x)) Source #

Monad m => Category (Algebra m :: Type -> Constraint) ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unit :: Algebra m x => x -> x Source #

comp :: Algebra m x => (y -> z) -> (x -> y) -> x -> z Source #

Monad m => MonoidalCategory (Algebra m :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () Source # 
Instance details

Defined in CategoriesInstances

Methods

alpha :: (Algebra m x, Algebra m y, Algebra m z) => (x, (y, z)) -> ((x, y), z) Source #

alphainv :: (Algebra m x, Algebra m y, Algebra m z) => ((x, y), z) -> (x, (y, z)) Source #

lambda :: Algebra m x => (x, ()) -> x Source #

lambdainv :: Algebra m x => x -> (x, ()) Source #

rho :: Algebra m x => ((), x) -> x Source #

rhoinv :: Algebra m x => x -> ((), x) Source #

data FunList s a b Source #

Constructors

Done b 
More s (FunList s a (a -> b)) 
Instances
Functor (FunList s a) Source # 
Instance details

Defined in CategoriesInstances

Methods

fmap :: (a0 -> b) -> FunList s a a0 -> FunList s a b #

(<$) :: a0 -> FunList s a b -> FunList s a a0 #

Applicative (FunList s a) Source # 
Instance details

Defined in CategoriesInstances

Methods

pure :: a0 -> FunList s a a0 #

(<*>) :: FunList s a (a0 -> b) -> FunList s a a0 -> FunList s a b #

liftA2 :: (a0 -> b -> c) -> FunList s a a0 -> FunList s a b -> FunList s a c #

(*>) :: FunList s a a0 -> FunList s a b -> FunList s a b #

(<*) :: FunList s a a0 -> FunList s a b -> FunList s a a0 #

newtype Kleisli m a b Source #

Constructors

Kleisli 

Fields

Instances
Monad m => Bifunctor (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) (Kleisli m :: Type -> Type -> Type) (Any :: Type -> Constraint) (Kleisli m :: Type -> Type -> Type) (,) Source # 
Instance details

Defined in CategoriesInstances

Methods

bimap :: (Any x1, Any x2, Any y1, Any y2) => (x1 -> x2) -> Kleisli m y1 y2 -> Kleisli m (x1, y1) (x2, y2) Source #

Monad m => Tambara (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) (Kleisli m :: Type -> Type -> Type) (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () (,) (,) (Updating m a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

tambara :: (Any x, Any y, Any w) => Updating m a b x y -> Updating m a b (w, x) (w, y) Source #

Monad m => MonoidalAction (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (,) () (Any :: Type -> Constraint) (Kleisli m :: Type -> Type -> Type) (,) Source # 
Instance details

Defined in CategoriesInstances

Methods

unitor :: Any x => Kleisli m ((), x) x Source #

unitorinv :: Any x => Kleisli m x ((), x) Source #

multiplicator :: (Any x, Any p, Any q) => Kleisli m (p, (q, x)) ((p, q), x) Source #

multiplicatorinv :: (Any x, Any p, Any q) => Kleisli m ((p, q), x) (p, (q, x)) Source #

Monad m => Profunctor (Any :: Type -> Constraint) ((->) :: Type -> Type -> Type) (Any :: Type -> Constraint) (Kleisli m :: Type -> Type -> Type) (Updating m a b :: Type -> Type -> Type) Source # 
Instance details

Defined in Combinators

Methods

dimap :: (Any x1, Any x2, Any y1, Any y2) => (x2 -> x1) -> Kleisli m y1 y2 -> Updating m a b x1 y1 -> Updating m a b x2 y2 Source #

Monad m => Category (Any :: Type -> Constraint) (Kleisli m :: Type -> Type -> Type) Source # 
Instance details

Defined in CategoriesInstances

Methods

unit :: Any x => Kleisli m x x Source #

comp :: Any x => Kleisli m y z -> Kleisli m x y -> Kleisli m x z Source #

Orphan instances

MonoidalCategory objm m o i => MonoidalAction (objm :: k -> Constraint) (m :: k -> k -> Type) (o :: k -> k -> k) (i :: k) (objm :: k -> Constraint) (m :: k -> k -> Type) (o :: k -> k -> k) Source # 
Instance details

Methods

unitor :: objm x => m (o i x) x Source #

unitorinv :: objm x => m x (o i x) Source #

multiplicator :: (objm x, objm p, objm q) => m (o p (o q x)) (o (o p q) x) Source #

multiplicatorinv :: (objm x, objm p, objm q) => m (o (o p q) x) (o p (o q x)) Source #