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

Reply via email to