Extending the do-notation

Sebastien Carlier sebc@posse42.net
Sun, 7 Jan 2001 15:03:07 +0100


Sometimes I need to write code which looks like this:
>    do x <- m1
>       let y = unzip x
>       ... -- never using x anymore 

I thinks the following extension to do-notation would be useful:
>    pat <- exp1 # exp2 ; exp3
would be rewritten as
>    exp2 >>= ((\pat -> exp3) . exp1)

so that the above example could be rewritten more compactly:
>    do y <- unzip # m1

I think the biggest problem with this extension is the choice
of a proper symbol.

Does this extension already exist ? (I only checked the Haskell 98
report).