On Thu, Feb 13, 2003 at 03:41:13PM +0100, Wolfgang Thaller wrote:
> The current HEAD is not able to compile the simplest of all Haskell 
> programs... but I don't think the bug affects anyone.
> Compiling
> 
> > module Main where
> > main = return ()
> 
> yields
> 
> Main.hs:1:
>     Ambiguous type variable `m' in these top-level constraint
>       `Monad m' arising from use of `return' at Main.hs:3
>     Possible cause: the monomorphism restriction applied to the 
> following:
>       main :: m () (bound at Main.hs:3)
>     Probable fix: give these definition(s) an explicit type signature
> 
> Giving the type signature helps, of course. The same program is 
> accepted by ghc-5.04.2.

This bug is older! ghc 5.04 does not enforce that the return type of main 
is (). In fact with 5.04 you can return anything you want and get very 
fancy exception on termination if you return a more complex data type. I 
thought this is a way to directly return an error code, but saying

main = return (5::Int)

gives error code 0 when compiled and run with ghc 5.04.

Axel.

_______________________________________________
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to