logo       

Bug in do expressions: msg#00027

lang.haskell.glasgow.bugs

Subject: Bug in do expressions

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


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise