summaryrefslogtreecommitdiff
path: root/examples/category-theory/Monad.gf
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2010-03-15 17:31:15 +0000
committerkrasimir <krasimir@chalmers.se>2010-03-15 17:31:15 +0000
commitd91999dec0bcdbed95fe3977d89f38157389852a (patch)
tree2f9ba1e2856f1f038af947a8e8092d0b645b9e2f /examples/category-theory/Monad.gf
parent381a7a2f07f013f02df60ee345527df80c48bd84 (diff)
incomplete code for adjoints and monads
Diffstat (limited to 'examples/category-theory/Monad.gf')
-rw-r--r--examples/category-theory/Monad.gf30
1 files changed, 30 insertions, 0 deletions
diff --git a/examples/category-theory/Monad.gf b/examples/category-theory/Monad.gf
new file mode 100644
index 000000000..68612d312
--- /dev/null
+++ b/examples/category-theory/Monad.gf
@@ -0,0 +1,30 @@
+abstract Monad = Adjoints ** {
+
+cat Monad ({c} : Category) (m : Functor c c) ;
+
+data monad : ({c} : Category)
+ -> (m : Functor c c)
+ -> NT (compF m m) m
+ -> NT (idF c) m
+ -> Monad m ;
+
+fun adjoints2monad : ({c,d} : Category)
+ -> (f : Functor c d)
+ -> (g : Functor d c)
+ -> Adjoints f g
+ -> Monad (compF g f) ;
+-- def adjoints2monad = ...
+
+{-
+fun kleisliCat : ({c} : Category)
+ -> ({m} : Functor c c)
+ -> Monad m
+ -> Category ;
+
+fun monad2adjoints : ({c} : Category)
+ -> ({m} : Functor c c)
+ -> Monad m
+ -> Adjoints {c} {kleisliCat m} f g
+-}
+
+} \ No newline at end of file