Bug in do expressions
Andrew J Bromage
ajb at spamcop.net
Wed Nov 20 19:45:11 EST 2002
G'day all.
In a recent GHC checkout, the following program:
module Main(main) where
import Maybe
import Control.Monad
test :: (MonadPlus m) => [a] -> m Bool
test xs
= do
(_:_) <- return xs
return True
`mplus`
do
return False
main :: IO ()
main
= do let x = fromJust (test [])
putStrLn (show x)
causes a run-time exception:
*** Exception: GhcBug.hs:9: Non-exhaustive patterns in 'do' expression
Version 5.04 correctly prints "False".
Cheers,
Andrew Bromage
More information about the Glasgow-haskell-bugs
mailing list