[Haskell-cafe] Why Kleisli composition is not in the Monad signature?

Jake McArthur jake.mcarthur at gmail.com
Mon Oct 15 17:33:30 CEST 2012


On Mon, Oct 15, 2012 at 7:59 AM, Ertugrul Söylemez <es at ertes.de> wrote:
> Try to express
>
>     do x <- getLine
>        y <- getLine
>        print (x, y)
>
> using only Kleisli composition (without cheating).

In my opinion, this is not as nice as the do-notation version, but at
least it's compositional:

    print <=< (<$> getLine) . (,) <=< const getLine $ ()

I do think there is value in favoring Kleisli composition for a lot of
code. Unfortunately, however, it doesn't tend to work out so nicely
for IO.

- Jake



More information about the Haskell-Cafe mailing list