The simplest program

Axel Simon A.Simon at ukc.ac.uk
Thu Feb 13 10:53:08 EST 2003


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.




More information about the Glasgow-haskell-bugs mailing list