Copyright | (c) 2016 Justus Sagemüller |
---|---|
License | GPL v3 (see COPYING) |
Maintainer | (@) jsag $ hvl.no |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
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 Specific :: CRCategory k => SpecificCat k α β -> k α β
- pattern Id :: CRCategory k => (β ~ α, Object k α) => k α β
- pattern (:<<<) :: forall {k} {α} {β} {β1}. CRCategory k => Object k β1 => k β1 β -> k α β1 -> k α β
- pattern (:>>>) :: forall {k} {α} {β} {β1}. CRCategory k => Object k β1 => k α β1 -> k β1 β -> k α β
- pattern Swap :: forall {k} {α} {β} {α1} {β1}. CRCartesian k => forall. (α ~ (α1, β1), β ~ (β1, α1), ObjectPair k α1 β1, ObjectPair k β1 α1) => k α β
- pattern AttachUnit :: forall {k} {α} {β} {u}. CRCartesian k => forall. (β ~ (α, u), UnitObject k ~ u, ObjectPair k α u) => k α β
- pattern DetachUnit :: forall {k} {α} {β} {u}. CRCartesian k => forall. (α ~ (β, u), UnitObject k ~ u, ObjectPair k β u) => k α β
- pattern Regroup :: forall {k} {α} {β} {α1} {β1} {γ}. CRCartesian k => forall. (α ~ (α1, (β1, γ)), β ~ ((α1, β1), γ), ObjectPair k α1 β1, ObjectPair k β1 γ, ObjectPair k α1 (β1, γ), ObjectPair k (α1, β1) γ) => k α β
- pattern Regroup' :: forall {k} {α} {β} {α1} {β1} {γ}. CRCartesian k => forall. (α ~ ((α1, β1), γ), β ~ (α1, (β1, γ)), ObjectPair k α1 β1, ObjectPair k β1 γ, ObjectPair k α1 (β1, γ), ObjectPair k (α1, β1) γ) => k α β
- pattern (:***) :: forall {k} {α} {β} {α1} {γ} {β1} {δ}. CRMorphism k => (α ~ (α1, γ), β ~ (β1, δ), ObjectPair k α1 γ, ObjectPair k β1 δ) => k α1 β1 -> k γ δ -> k α β
- pattern (:&&&) :: forall {k} {α} {β} {β1} {γ}. CRPreArrow k => (β ~ (β1, γ), Object k α, ObjectPair k β1 γ) => k α β1 -> k α γ -> k α β
- pattern Fst :: forall {k} {α} {β} {β1}. CRPreArrow k => forall. (α ~ (β, β1), ObjectPair k β β1) => k α β
- pattern Snd :: forall {k} {α} {β} {α1}. CRPreArrow k => forall. (α ~ (α1, β), ObjectPair k α1 β) => k α β
- pattern Terminal :: CRPreArrow k => (Object k α, UnitObject k ~ β) => k α β
- pattern Const :: forall {k} {α} {β}. CRWellPointed k => (Object k α, Object k β) => β -> k α β
- class Category k => CRCategory k where
- type SpecificCat k :: * -> * -> *
- fromSpecific :: SpecificCat k α β -> k α β
- match_concrete :: k α β -> Maybe (SpecificCat k α β)
- match_id :: k α β -> IdPattern k α β
- match_compose :: k α β -> CompoPattern k α β
- class CRCategory k => CRCartesian k where
- match_swap :: k α β -> SwapPattern k α β
- match_attachUnit :: k α β -> AttachUnitPattern k α β
- match_detachUnit :: k α β -> DetachUnitPattern k α β
- match_regroup :: k α β -> RegroupPattern k α β
- match_regroup' :: k α β -> Regroup'Pattern k α β
- class CRCartesian k => CRMorphism k where
- match_par :: k α β -> ParPattern k α β
- class CRCartesian k => CRPreArrow k where
- match_fan :: k α β -> FanPattern k α β
- match_fst :: k α β -> FstPattern k α β
- match_snd :: k α β -> SndPattern k α β
- match_terminal :: k α β -> TerminalPattern k α β
- class CRPreArrow k => CRWellPointed k where
- match_const :: k α β -> ConstPattern k α β
Pattern synonyms (GHC>=7.10)
Category
pattern Specific :: CRCategory k => SpecificCat k α β -> k α β Source #
pattern Id :: CRCategory k => (β ~ α, Object k α) => k α β Source #
pattern (:<<<) :: forall {k} {α} {β} {β1}. CRCategory k => Object k β1 => k β1 β -> k α β1 -> k α β infixr 1 Source #
pattern (:>>>) :: forall {k} {α} {β} {β1}. CRCategory k => Object k β1 => k α β1 -> k β1 β -> k α β infixr 1 Source #
Cartesian
pattern Swap :: forall {k} {α} {β} {α1} {β1}. CRCartesian k => forall. (α ~ (α1, β1), β ~ (β1, α1), ObjectPair k α1 β1, ObjectPair k β1 α1) => k α β Source #
pattern AttachUnit :: forall {k} {α} {β} {u}. CRCartesian k => forall. (β ~ (α, u), UnitObject k ~ u, ObjectPair k α u) => k α β Source #
pattern DetachUnit :: forall {k} {α} {β} {u}. CRCartesian k => forall. (α ~ (β, u), UnitObject k ~ u, ObjectPair k β u) => k α β Source #
pattern Regroup :: forall {k} {α} {β} {α1} {β1} {γ}. CRCartesian k => forall. (α ~ (α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} {α} {β} {α1} {β1} {γ}. CRCartesian k => forall. (α ~ ((α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} {α} {β} {α1} {γ} {β1} {δ}. CRMorphism k => (α ~ (α1, γ), β ~ (β1, δ), ObjectPair k α1 γ, ObjectPair k β1 δ) => k α1 β1 -> k γ δ -> k α β infixr 3 Source #
Pre-arrow
pattern (:&&&) :: forall {k} {α} {β} {β1} {γ}. CRPreArrow k => (β ~ (β1, γ), Object k α, ObjectPair k β1 γ) => k α β1 -> k α γ -> k α β infixr 3 Source #
pattern Fst :: forall {k} {α} {β} {β1}. CRPreArrow k => forall. (α ~ (β, β1), ObjectPair k β β1) => k α β Source #
pattern Snd :: forall {k} {α} {β} {α1}. CRPreArrow k => forall. (α ~ (α1, β), ObjectPair k α1 β) => k α β Source #
pattern Terminal :: 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 #
type SpecificCat k :: * -> * -> * Source #
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
class CRCategory k => CRCartesian k where Source #
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
class CRCartesian k => CRMorphism k where Source #
Instances
Morphism k => CRMorphism (ReMorphism k) Source # | |
Defined in Control.Category.Constrained.Reified.PolyPattern match_par :: ReMorphism k α β -> ParPattern (ReMorphism k) α β Source # | |
PreArrow k => CRMorphism (RePreArrow k) Source # | |
Defined in Control.Category.Constrained.Reified.PolyPattern match_par :: RePreArrow k α β -> ParPattern (RePreArrow k) α β Source # | |
WellPointed k => CRMorphism (ReWellPointed k) Source # | |
Defined in Control.Category.Constrained.Reified.PolyPattern match_par :: ReWellPointed k α β -> ParPattern (ReWellPointed k) α β Source # |
class CRCartesian k => CRPreArrow k where Source #
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
PreArrow k => CRPreArrow (RePreArrow k) Source # | |
Defined in Control.Category.Constrained.Reified.PolyPattern 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 # | |
WellPointed k => CRPreArrow (ReWellPointed k) Source # | |
Defined in Control.Category.Constrained.Reified.PolyPattern 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 # |
class CRPreArrow k => CRWellPointed k where Source #
match_const :: k α β -> ConstPattern k α β Source #
Instances
WellPointed k => CRWellPointed (ReWellPointed k) Source # | |
Defined in Control.Category.Constrained.Reified.PolyPattern match_const :: ReWellPointed k α β -> ConstPattern (ReWellPointed k) α β Source # |