constrained-category-0.1.0.0: Constrained Categories

Safe HaskellNone
LanguageHaskell2010

Control.Category.Constrained

Contents

Documentation

class Semigroupoid (s :: α -> α -> Type) where Source #

Methods

(∘) :: s b c -> s a b -> s a c Source #

Instances
Category s => Semigroupoid (s :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

(∘) :: s b c -> s a b -> s a c Source #

Semigroupoid k => Semigroupoid (Dual k :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

(∘) :: Dual k b c -> Dual k a b -> Dual k a c Source #

Semigroupoid (,) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

(∘) :: (b, c) -> (a, b) -> (a, c) Source #

Semigroupoid (Const :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

(∘) :: Const b c -> Const a b -> Const a c Source #

Semigroupoid s => Semigroupoid (NT s :: (k -> k) -> (k -> k) -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

(∘) :: NT s b c -> NT s a b -> NT s a c Source #

class Semigroupoid s => Category s where Source #

Minimal complete definition

Nothing

Methods

id :: Valid s a => s a a Source #

id' :: Dict (Valid s a) -> s a a Source #

Instances
Category (:-) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

id :: Valid (:-) a => a :- a Source #

id' :: Dict (Valid (:-) a) -> a :- a Source #

(Category s, Valid s ~ (Unconstrained1 :: α -> Constraint)) => Category (s :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

id :: Valid s a => s a a Source #

id' :: Dict (Valid s a) -> s a a Source #

Category (Coercion :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

id :: Valid Coercion a => Coercion a a Source #

id' :: Dict (Valid Coercion a) -> Coercion a a Source #

Category ((:~:) :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

id :: Valid (:~:) a => a :~: a Source #

id' :: Dict (Valid (:~:) a) -> a :~: a Source #

Category ((:~~:) :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

id :: Valid (:~~:) a => a :~~: a Source #

id' :: Dict (Valid (:~~:) a) -> a :~~: a Source #

Category k => Category (Dual k :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

id :: Valid (Dual k) a => Dual k a a Source #

id' :: Dict (Valid (Dual k) a) -> Dual k a a Source #

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

Defined in Control.Category.Constrained

Methods

id :: Valid (->) a => a -> a Source #

id' :: Dict (Valid (->) a) -> a -> a Source #

Category s => Category (NT s :: (k -> k) -> (k -> k) -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

id :: Valid (NT s) a => NT s a a Source #

id' :: Dict (Valid (NT s) a) -> NT s a a Source #

class Category s => Groupoid s where Source #

Minimal complete definition

Nothing

Methods

invert :: (Valid s a, Valid s b) => s a b -> s b a Source #

invert' :: Dict (Valid s a) -> Dict (Valid s b) -> s a b -> s b a Source #

Instances
(Groupoid s, Valid s ~ (Unconstrained1 :: α -> Constraint)) => Groupoid (s :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

invert :: (Valid s a, Valid s b) => s a b -> s b a Source #

invert' :: Dict (Valid s a) -> Dict (Valid s b) -> s a b -> s b a Source #

Groupoid (Coercion :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Groupoid ((:~:) :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

invert :: (Valid (:~:) a, Valid (:~:) b) => (a :~: b) -> b :~: a Source #

invert' :: Dict (Valid (:~:) a) -> Dict (Valid (:~:) b) -> (a :~: b) -> b :~: a Source #

Groupoid ((:~~:) :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

invert :: (Valid (:~~:) a, Valid (:~~:) b) => (a :~~: b) -> b :~~: a Source #

invert' :: Dict (Valid (:~~:) a) -> Dict (Valid (:~~:) b) -> (a :~~: b) -> b :~~: a Source #

Groupoid k => Groupoid (Dual k :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

invert :: (Valid (Dual k) a, Valid (Dual k) b) => Dual k a b -> Dual k b a Source #

invert' :: Dict (Valid (Dual k) a) -> Dict (Valid (Dual k) b) -> Dual k a b -> Dual k b a Source #

Groupoid s => Groupoid (NT s :: (k -> k) -> (k -> k) -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

invert :: (Valid (NT s) a, Valid (NT s) b) => NT s a b -> NT s b a Source #

invert' :: Dict (Valid (NT s) a) -> Dict (Valid (NT s) b) -> NT s a b -> NT s b a Source #

type family Valid (s :: α -> α -> Type) :: α -> Constraint Source #

Instances
type Valid (:-) Source # 
Instance details

Defined in Control.Category.Constrained

type Valid (Coercion :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

type Valid (Coercion :: α -> α -> Type) = (Unconstrained1 :: α -> Constraint)
type Valid ((:~:) :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

type Valid ((:~:) :: α -> α -> Type) = (Unconstrained1 :: α -> Constraint)
type Valid ((:~~:) :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

type Valid ((:~~:) :: α -> α -> Type) = (Unconstrained1 :: α -> Constraint)
type Valid (Dual k :: α -> α -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

type Valid (Dual k :: α -> α -> Type) = Valid k
type Valid ((->) :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

type Valid ((->) :: Type -> Type -> Type) = (Unconstrained1 :: Type -> Constraint)
type Valid (NT s :: (k -> k) -> (k -> k) -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

type Valid (NT s :: (k -> k) -> (k -> k) -> Type) = Endolifting (Valid s)

newtype NT s f g Source #

Constructors

NT 

Fields

  • nt :: forall a. Valid s a => s (f a) (g a)
     
Instances
Functor ((->) :: Type -> Type -> Type) (NT ((->) :: Type -> Type -> Type)) Either Source # 
Instance details

Defined in Data.Functor.Constrained

Functor ((->) :: Type -> Type -> Type) (NT ((->) :: Type -> Type -> Type)) (,) Source # 
Instance details

Defined in Data.Functor.Constrained

SGM ((->) :: Type -> Type -> Type) (NT ((->) :: Type -> Type -> Type)) Either Source # 
Instance details

Defined in Data.Functor.Constrained

Methods

map :: (a -> b) -> NT (->) (Either a) (Either b) Source #

SGM ((->) :: Type -> Type -> Type) (NT ((->) :: Type -> Type -> Type)) (,) Source # 
Instance details

Defined in Data.Functor.Constrained

Methods

map :: (a -> b) -> NT (->) ((,) a) ((,) b) Source #

Functor ((->) :: Type -> Type -> Type) (NT ((->) :: Type -> Type -> Type)) (Const :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Constrained

SGM ((->) :: Type -> Type -> Type) (NT ((->) :: Type -> Type -> Type)) (Const :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Constrained

Methods

map :: (a -> b) -> NT (->) (Const a) (Const b) Source #

Category s => Functor (Dual s :: Type -> Type -> Type) (NT ((->) :: Type -> Type -> Type)) (s :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Constrained

Semigroupoid s => SGM (Dual s :: Type -> Type -> Type) (NT ((->) :: Type -> Type -> Type)) (s :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Constrained

Methods

map :: Dual s a b -> NT (->) (s a) (s b) Source #

Groupoid s => Groupoid (NT s :: (k -> k) -> (k -> k) -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

invert :: (Valid (NT s) a, Valid (NT s) b) => NT s a b -> NT s b a Source #

invert' :: Dict (Valid (NT s) a) -> Dict (Valid (NT s) b) -> NT s a b -> NT s b a Source #

Category s => Category (NT s :: (k -> k) -> (k -> k) -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

id :: Valid (NT s) a => NT s a a Source #

id' :: Dict (Valid (NT s) a) -> NT s a a Source #

Semigroupoid s => Semigroupoid (NT s :: (k -> k) -> (k -> k) -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Methods

(∘) :: NT s b c -> NT s a b -> NT s a c Source #

Functor (NT ((->) :: Type -> Type -> Type)) (NT (NT ((->) :: Type -> Type -> Type))) (Product :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Constrained

Functor (NT ((->) :: Type -> Type -> Type)) (NT (NT ((->) :: Type -> Type -> Type))) (Sum :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Constrained

SGM (NT ((->) :: Type -> Type -> Type)) (NT (NT ((->) :: Type -> Type -> Type))) (Product :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Constrained

Methods

map :: NT (->) a b -> NT (NT (->)) (Product a) (Product b) Source #

SGM (NT ((->) :: Type -> Type -> Type)) (NT (NT ((->) :: Type -> Type -> Type))) (Sum :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Constrained

Methods

map :: NT (->) a b -> NT (NT (->)) (Sum a) (Sum b) Source #

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

Defined in Data.Functor.Constrained

Functor (NT ((->) :: Type -> Type -> Type)) (NT ((->) :: Type -> Type -> Type)) (Product f :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Constrained

Functor (NT ((->) :: Type -> Type -> Type)) (NT ((->) :: Type -> Type -> Type)) (Sum f :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Constrained

SGM (NT ((->) :: Type -> Type -> Type)) (NT (NT ((->) :: Type -> Type -> Type))) (Compose :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Constrained

Methods

map :: NT (->) a b -> NT (NT (->)) (Compose a) (Compose b) Source #

SGM (NT ((->) :: Type -> Type -> Type)) (NT ((->) :: Type -> Type -> Type)) (Product f :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Constrained

Methods

map :: NT (->) a b -> NT (->) (Product f a) (Product f b) Source #

SGM (NT ((->) :: Type -> Type -> Type)) (NT ((->) :: Type -> Type -> Type)) (Sum f :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Constrained

Methods

map :: NT (->) a b -> NT (->) (Sum f a) (Sum f b) Source #

(Functor s ((->) :: Type -> Type -> Type) f, Valid s ~ (Unconstrained1 :: Type -> Constraint)) => Functor (NT s :: (Type -> Type) -> (Type -> Type) -> Type) (NT ((->) :: Type -> Type -> Type)) (Compose f :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Constrained

(SGM s ((->) :: Type -> Type -> Type) f, Valid s ~ (Unconstrained1 :: Type -> Constraint)) => SGM (NT s :: (Type -> Type) -> (Type -> Type) -> Type) (NT ((->) :: Type -> Type -> Type)) (Compose f :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in Data.Functor.Constrained

Methods

map :: NT s a b -> NT (->) (Compose f a) (Compose f b) Source #

type Valid (NT s :: (k -> k) -> (k -> k) -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

type Valid (NT s :: (k -> k) -> (k -> k) -> Type) = Endolifting (Valid s)

mkNT' :: (forall a. Dict (Valid s a) -> s (f a) (g a)) -> NT s f g Source #

nt' :: NT s f g -> Dict (Valid s a) -> s (f a) (g a) Source #

Orphan instances

(Category s, Valid s ~ (Unconstrained1 :: k -> Constraint)) => Category (s :: k -> k -> Type) Source # 
Instance details

Methods

id :: s a a #

(.) :: s b c -> s a b -> s a c #

(Groupoid s, Valid s ~ (Unconstrained1 :: k -> Constraint)) => Groupoid (s :: k -> k -> Type) Source # 
Instance details

Methods

invert :: s a b -> s b a #