GArrowUnit,
GArrowExponent,
- GArrowSTKC(..),
- GArrowSTKCL(..),
+ GArrowCopyDropSwap(..),
+ GArrowCopyDropSwapLoop(..),
GArrowSTLC(..),
GArrowPCF(..)
-- However, in daily practice it's a pain to have all those extra type
-- variables floating around. If you'd like to hide them, you can use
-- the type families below to do so; see the definition of class
--- GArrowSTKC for an example. Keep in mind, however, that any given
+-- GArrowCopyDropSwap for an example. Keep in mind, however, that any given
-- type may only have a single instance declared using the type
-- families.
--
------------------------------------------------------------------------
-- Commonly Implemented Collections of Classes
---
--- The simply typed KAPPA calculus; see Hasegawa, __Decomposing Typed
--- Lambda Calculus into a Couple of Categorical Programming
--- Languages__, http://dx.doi.org/10.1007/3-540-60164-3_28
---
-
class (GArrowDrop g (GArrowTensor g) (GArrowUnit g),
GArrowCopy g (GArrowTensor g) (GArrowUnit g),
GArrowSwap g (GArrowTensor g) (GArrowUnit g)) =>
- GArrowSTKC g
+ GArrowCopyDropSwap g
class (GArrowDrop g (GArrowTensor g) (GArrowUnit g),
GArrowCopy g (GArrowTensor g) (GArrowUnit g),
GArrowSwap g (GArrowTensor g) (GArrowUnit g),
GArrowLoop g (GArrowTensor g) (GArrowUnit g)) =>
- GArrowSTKCL g
+ GArrowCopyDropSwapLoop g
-- The simply typed LAMBDA calculus
class (GArrowDrop g (GArrowTensor g) (GArrowUnit g),
-------------------------------------------------------------------------
-- Used internally by the compiler, subject to change without notice!!
-newtype PGArrow g x y = PGArrowD { unG :: GArrowSTKCL g => g x y }
+newtype PGArrow g x y = PGArrowD { unG :: GArrowCopyDropSwapLoop g => g x y }
pga_id :: forall g x. PGArrow g x x
pga_id = PGArrowD { unG = Control.Category.id }