constrained-categories-0.3.1.1: Constrained clones of the category-theory type classes, using ConstraintKinds.

Copyright(c) 2016 Justus Sagemüller
LicenseGPL v3 (see COPYING)
Maintainer(@) sagemueller $ geo.uni-koeln.de
Safe HaskellTrustworthy
LanguageHaskell2010

Control.Category.Constrained.Reified.PolyPattern

Contents

Description

Pattern synonyms which allow you to deconstruct the various types in Control.Category.Constrained.Reified in a uniform way.

This kind of polymorphic pattern (with ViewPatterns) doesn't seem to work prior to GHC-7.10, so if you have base<4.8 these synonyms aren't available.

Synopsis

Pattern synonyms (GHC>=7.10)

Category

pattern Specific :: forall (k :: * -> * -> *) α β. CRCategory k => SpecificCat k α β -> k α β Source #

pattern Id :: forall (k :: * -> * -> *) α β. CRCategory k => (β ~# α, Object k α) => k α β Source #

pattern (:<<<) :: forall (k :: * -> * -> *) α β. CRCategory k => forall β1. Object k β1 => k β1 β -> k α β1 -> k α β infixr 1 Source #

pattern (:>>>) :: forall (k :: * -> * -> *) α β. CRCategory k => forall β1. Object k β1 => k α β1 -> k β1 β -> k α β infixr 1 Source #

Cartesian

pattern Swap :: forall (k :: * -> * -> *) α β. CRCartesian k => forall α1 β1. (α ~# (α1, β1), β ~# (β1, α1), ObjectPair k α1 β1, ObjectPair k β1 α1) => k α β Source #

pattern AttachUnit :: forall (k :: * -> * -> *) α β. CRCartesian k => forall u. (β ~# (α, u), UnitObject k ~ u, ObjectPair k α u) => k α β Source #

pattern DetachUnit :: forall (k :: * -> * -> *) α β. CRCartesian k => forall u. (α ~# (β, u), UnitObject k ~ u, ObjectPair k β u) => k α β Source #

pattern Regroup :: forall (k :: * -> * -> *) α β. CRCartesian k => forall α1 β1 γ. (α ~# (α1, (β1, γ)), β ~# ((α1, β1), γ), ObjectPair k α1 β1, ObjectPair k β1 γ, ObjectPair k α1 (β1, γ), ObjectPair k (α1, β1) γ) => k α β Source #

pattern Regroup' :: forall (k :: * -> * -> *) α β. CRCartesian k => forall α1 β1 γ. (α ~# ((α1, β1), γ), β ~# (α1, (β1, γ)), ObjectPair k α1 β1, ObjectPair k β1 γ, ObjectPair k α1 (β1, γ), ObjectPair k (α1, β1) γ) => k α β Source #

Morphism

pattern (:***) :: forall (k :: * -> * -> *) α β. CRMorphism k => forall α1 γ β1 δ. (α ~# (α1, γ), β ~# (β1, δ), ObjectPair k α1 γ, ObjectPair k β1 δ) => k α1 β1 -> k γ δ -> k α β infixr 3 Source #

Pre-arrow

pattern (:&&&) :: forall (k :: * -> * -> *) α β. CRPreArrow k => forall β1 γ. (β ~# (β1, γ), Object k α, ObjectPair k β1 γ) => k α β1 -> k α γ -> k α β infixr 3 Source #

pattern Fst :: forall (k :: * -> * -> *) α β. CRPreArrow k => forall β1. (α ~# (β, β1), ObjectPair k β β1) => k α β Source #

pattern Snd :: forall (k :: * -> * -> *) α β. CRPreArrow k => forall α1. (α ~# (α1, β), ObjectPair k α1 β) => k α β Source #

pattern Terminal :: forall (k :: * -> * -> *) α β. CRPreArrow k => (Object k α, UnitObject k ~ β) => k α β Source #

Well-pointed

pattern Const :: forall (k :: * -> * -> *) α β. CRWellPointed k => (Object k α, Object k β) => β -> k α β Source #

Deconstruction-classes

class Category k => CRCategory k where Source #

Minimal complete definition

fromSpecific, match_concrete, match_id, match_compose

Associated Types

type SpecificCat k :: * -> * -> * Source #

Methods

fromSpecific :: SpecificCat k α β -> k α β Source #

match_concrete :: k α β -> Maybe (SpecificCat k α β) Source #

match_id :: k α β -> IdPattern k α β Source #

match_compose :: k α β -> CompoPattern k α β Source #

Instances
WellPointed k => CRCategory (ReWellPointed k) Source # 
Instance details

Defined in Control.Category.Constrained.Reified.PolyPattern

Associated Types

type SpecificCat (ReWellPointed k) :: * -> * -> * Source #

Methods

fromSpecific :: SpecificCat (ReWellPointed k) α β -> ReWellPointed k α β Source #

match_concrete :: ReWellPointed k α β -> Maybe (SpecificCat (ReWellPointed k) α β) Source #

match_id :: ReWellPointed k α β -> IdPattern (ReWellPointed k) α β Source #

match_compose :: ReWellPointed k α β -> CompoPattern (ReWellPointed k) α β Source #

PreArrow k => CRCategory (RePreArrow k) Source # 
Instance details

Defined in Control.Category.Constrained.Reified.PolyPattern

Associated Types

type SpecificCat (RePreArrow k) :: * -> * -> * Source #

Methods

fromSpecific :: SpecificCat (RePreArrow k) α β -> RePreArrow k α β Source #

match_concrete :: RePreArrow k α β -> Maybe (SpecificCat (RePreArrow k) α β) Source #

match_id :: RePreArrow k α β -> IdPattern (RePreArrow k) α β Source #

match_compose :: RePreArrow k α β -> CompoPattern (RePreArrow k) α β Source #

Morphism k => CRCategory (ReMorphism k) Source # 
Instance details

Defined in Control.Category.Constrained.Reified.PolyPattern

Associated Types

type SpecificCat (ReMorphism k) :: * -> * -> * Source #

Methods

fromSpecific :: SpecificCat (ReMorphism k) α β -> ReMorphism k α β Source #

match_concrete :: ReMorphism k α β -> Maybe (SpecificCat (ReMorphism k) α β) Source #

match_id :: ReMorphism k α β -> IdPattern (ReMorphism k) α β Source #

match_compose :: ReMorphism k α β -> CompoPattern (ReMorphism k) α β Source #

Cartesian k => CRCategory (ReCartesian k) Source # 
Instance details

Defined in Control.Category.Constrained.Reified.PolyPattern

Associated Types

type SpecificCat (ReCartesian k) :: * -> * -> * Source #

Methods

fromSpecific :: SpecificCat (ReCartesian k) α β -> ReCartesian k α β Source #

match_concrete :: ReCartesian k α β -> Maybe (SpecificCat (ReCartesian k) α β) Source #

match_id :: ReCartesian k α β -> IdPattern (ReCartesian k) α β Source #

match_compose :: ReCartesian k α β -> CompoPattern (ReCartesian k) α β Source #

Category k => CRCategory (ReCategory k) Source # 
Instance details

Defined in Control.Category.Constrained.Reified.PolyPattern

Associated Types

type SpecificCat (ReCategory k) :: * -> * -> * Source #

Methods

fromSpecific :: SpecificCat (ReCategory k) α β -> ReCategory k α β Source #

match_concrete :: ReCategory k α β -> Maybe (SpecificCat (ReCategory k) α β) Source #

match_id :: ReCategory k α β -> IdPattern (ReCategory k) α β Source #

match_compose :: ReCategory k α β -> CompoPattern (ReCategory k) α β Source #

class CRCategory k => CRCartesian k where Source #

Methods

match_swap :: k α β -> SwapPattern k α β Source #

match_attachUnit :: k α β -> AttachUnitPattern k α β Source #

match_detachUnit :: k α β -> DetachUnitPattern k α β Source #

match_regroup :: k α β -> RegroupPattern k α β Source #

match_regroup' :: k α β -> Regroup'Pattern k α β Source #

Instances
WellPointed k => CRCartesian (ReWellPointed k) Source # 
Instance details

Defined in Control.Category.Constrained.Reified.PolyPattern

Methods

match_swap :: ReWellPointed k α β -> SwapPattern (ReWellPointed k) α β Source #

match_attachUnit :: ReWellPointed k α β -> AttachUnitPattern (ReWellPointed k) α β Source #

match_detachUnit :: ReWellPointed k α β -> DetachUnitPattern (ReWellPointed k) α β Source #

match_regroup :: ReWellPointed k α β -> RegroupPattern (ReWellPointed k) α β Source #

match_regroup' :: ReWellPointed k α β -> Regroup'Pattern (ReWellPointed k) α β Source #

PreArrow k => CRCartesian (RePreArrow k) Source # 
Instance details

Defined in Control.Category.Constrained.Reified.PolyPattern

Methods

match_swap :: RePreArrow k α β -> SwapPattern (RePreArrow k) α β Source #

match_attachUnit :: RePreArrow k α β -> AttachUnitPattern (RePreArrow k) α β Source #

match_detachUnit :: RePreArrow k α β -> DetachUnitPattern (RePreArrow k) α β Source #

match_regroup :: RePreArrow k α β -> RegroupPattern (RePreArrow k) α β Source #

match_regroup' :: RePreArrow k α β -> Regroup'Pattern (RePreArrow k) α β Source #

Morphism k => CRCartesian (ReMorphism k) Source # 
Instance details

Defined in Control.Category.Constrained.Reified.PolyPattern

Methods

match_swap :: ReMorphism k α β -> SwapPattern (ReMorphism k) α β Source #

match_attachUnit :: ReMorphism k α β -> AttachUnitPattern (ReMorphism k) α β Source #

match_detachUnit :: ReMorphism k α β -> DetachUnitPattern (ReMorphism k) α β Source #

match_regroup :: ReMorphism k α β -> RegroupPattern (ReMorphism k) α β Source #

match_regroup' :: ReMorphism k α β -> Regroup'Pattern (ReMorphism k) α β Source #

Cartesian k => CRCartesian (ReCartesian k) Source # 
Instance details

Defined in Control.Category.Constrained.Reified.PolyPattern

Methods

match_swap :: ReCartesian k α β -> SwapPattern (ReCartesian k) α β Source #

match_attachUnit :: ReCartesian k α β -> AttachUnitPattern (ReCartesian k) α β Source #

match_detachUnit :: ReCartesian k α β -> DetachUnitPattern (ReCartesian k) α β Source #

match_regroup :: ReCartesian k α β -> RegroupPattern (ReCartesian k) α β Source #

match_regroup' :: ReCartesian k α β -> Regroup'Pattern (ReCartesian k) α β Source #

class CRCartesian k => CRMorphism k where Source #

Minimal complete definition

match_par

Methods

match_par :: k α β -> ParPattern k α β Source #

Instances
WellPointed k => CRMorphism (ReWellPointed k) Source # 
Instance details

Defined in Control.Category.Constrained.Reified.PolyPattern

Methods

match_par :: ReWellPointed k α β -> ParPattern (ReWellPointed k) α β Source #

PreArrow k => CRMorphism (RePreArrow k) Source # 
Instance details

Defined in Control.Category.Constrained.Reified.PolyPattern

Methods

match_par :: RePreArrow k α β -> ParPattern (RePreArrow k) α β Source #

Morphism k => CRMorphism (ReMorphism k) Source # 
Instance details

Defined in Control.Category.Constrained.Reified.PolyPattern

Methods

match_par :: ReMorphism k α β -> ParPattern (ReMorphism k) α β Source #

class CRCartesian k => CRPreArrow k where Source #

Minimal complete definition

match_fan, match_fst, match_snd, match_terminal

Methods

match_fan :: k α β -> FanPattern k α β Source #

match_fst :: k α β -> FstPattern k α β Source #

match_snd :: k α β -> SndPattern k α β Source #

match_terminal :: k α β -> TerminalPattern k α β Source #

Instances
WellPointed k => CRPreArrow (ReWellPointed k) Source # 
Instance details

Defined in Control.Category.Constrained.Reified.PolyPattern

Methods

match_fan :: ReWellPointed k α β -> FanPattern (ReWellPointed k) α β Source #

match_fst :: ReWellPointed k α β -> FstPattern (ReWellPointed k) α β Source #

match_snd :: ReWellPointed k α β -> SndPattern (ReWellPointed k) α β Source #

match_terminal :: ReWellPointed k α β -> TerminalPattern (ReWellPointed k) α β Source #

PreArrow k => CRPreArrow (RePreArrow k) Source # 
Instance details

Defined in Control.Category.Constrained.Reified.PolyPattern

Methods

match_fan :: RePreArrow k α β -> FanPattern (RePreArrow k) α β Source #

match_fst :: RePreArrow k α β -> FstPattern (RePreArrow k) α β Source #

match_snd :: RePreArrow k α β -> SndPattern (RePreArrow k) α β Source #

match_terminal :: RePreArrow k α β -> TerminalPattern (RePreArrow k) α β Source #

class CRPreArrow k => CRWellPointed k where Source #

Minimal complete definition

match_const

Methods

match_const :: k α β -> ConstPattern k α β Source #

Instances
WellPointed k => CRWellPointed (ReWellPointed k) Source # 
Instance details

Defined in Control.Category.Constrained.Reified.PolyPattern

Methods

match_const :: ReWellPointed k α β -> ConstPattern (ReWellPointed k) α β Source #