Is there a way to perform a case on the value stored within a monad without having to bind a name to it?
i.e. instead of doing this:
c <- getChar case
The proposal mentioned by FUZxxl was now implemented in GHC since 7.6.1, it's called LambdaCase.
LambdaCase
Now you can do:
{-# LANGUAGE LambdaCase #-} getChar >>= \case ...
Note the \ before the case keyword and the fact that there is no of in that case.
\
case
of