I had seen it before, and a bit of Googling turned up this:
The monad laws can be written as
return >=> g == g
g >=> return == g
(g >=> h) >=> k == g>=> (h >=> k)
So, functions of type a -> m b are the arrows of a category with
(>=>) as composition,
and return as identity.
http://sites.google.com/site/haskell/category-theory/thekleislicategory
Although I think I saw them somewhere else.
Sjoerd
On Jun 18, 2009, at 1:23 PM, Hans van Thiel wrote:
On Wed, 2009-06-17 at 21:26 -0500, Jake McArthur wrote:
Jon Strait wrote:
I'm reading the third (bind associativity) law for monads in this
form:
m >>= (\x -> k x >>= h) = (m >>= k) >>= h
Arguably, that law would be better stated as:
(h <=< k) <=< m = h <=< (k <=< m)
This wouldn't be so unintuitive.
Hi,
The only place I've ever seen Kleisli composition, or its flip, used
is
in demonstrating the monad laws. Yet it is so elegant and, even having
its own name, it must have some practical use. Do you, or anybody
else,
have some pointers?
Best Regards,
Hans van Thiel
- Jake
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe
--
Sjoerd Visscher
[email protected]
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe