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