in reply to Re^9: 99 Problems in Perl6
in thread 99 Problems in Perl6

Pure variants like this one are desugared into a case:

compress x = case x of [] -> [] [a] -> [a] -- singleton list (x:y:xs) -> (if x == y then [] else [x]) ++ compress (y:xs)

And can do no monadic monkey business because compress is pure. In this they are simply a more convenient way of spelling out some branches. You wouldn't say if is a sneaky way of doing sequential dependencies, would you?

Sure, with a monadic function you can also have pattern guards that do monadic stuff, but I don't think you can bind without noticing, and in any case the function type will tell you it's monadic.