add GArrowSTKC, GArrowPCF
authorAdam Megacz <megacz@cs.berkeley.edu>
Mon, 11 Apr 2011 00:03:58 +0000 (17:03 -0700)
committerAdam Megacz <megacz@cs.berkeley.edu>
Tue, 31 May 2011 21:59:09 +0000 (14:59 -0700)
GHC/HetMet/GArrow.hs

index c53e2f8..3b64d90 100644 (file)
@@ -28,7 +28,12 @@ module GHC.HetMet.GArrow (
   GArrowReflect(..),
 
   GArrowCurry(..),
   GArrowReflect(..),
 
   GArrowCurry(..),
-  GArrowApply(..)
+  GArrowApply(..),
+
+  GArrowSTKC(..),
+  GArrowSTLC(..),
+  GArrowPCF(..)
+
 ) where
 import Control.Category
 
 ) where
 import Control.Category
 
@@ -145,3 +150,39 @@ class GArrow g (**) u => GArrowApply g (**) u (~>) where
 class GArrow g (**) u => GArrowCurry g (**) u (~>) where
   ga_curryl    :: g (x**y) z  ->  g x (y~>z)
   ga_curryr    :: g (x**y) z  ->  g y (x~>z)
 class GArrow g (**) u => GArrowCurry g (**) u (~>) where
   ga_curryl    :: g (x**y) z  ->  g x (y~>z)
   ga_curryr    :: g (x**y) z  ->  g y (x~>z)
+
+
+
+
+------------------------------------------------------------------------
+-- 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 (**) u,
+       GArrowCopy  g (**) u,
+       GArrowSwap  g (**) u) =>
+       GArrowSTKC  g (**) u
+
+-- The simply typed LAMBDA calculus
+class (GArrowSTKC  g (**) u,
+       GArrowCurry g (**) u (~>),
+       GArrowApply g (**) u (~>)) =>
+       GArrowSTLC  g (**) u (~>)
+
+-- Programming Language for Computable Functions (w/o integers and booleans)
+class (GArrowSTLC  g (**) u (~>),
+       GArrowLoop  g (**) u) =>
+       GArrowPCF   g (**) u (~>)
+
+
+
+
+
+
+
+
+