Alex compilation fails on ambiguous type [was: Re: Alex requirement for Setup.lhs]

Philip K.F. Hölzenspies p.k.f.holzenspies at utwente.nl
Thu Dec 4 08:24:32 EST 2008


On Thursday 04 December 2008 00:11:13 Ian Lynagh wrote:
> If you have downloaded the source tarball then the preprocessed files
> are included. Cabal may be getting confused by the .x files also being
> present, so
>     rm src/Scan.x
> should fix it. You may also need to
>     rm src/Parser.y
> if you don't have happy.

Dear Ian, all,

Thank you for your tip, Ian. Deleting src/Scan.x did do the trick. However, I 
get a very strange type error when I try to compile alex 2.2. Maybe someone 
knows what's going on here:

[16 of 16] Compiling Main             ( src/Main.hs, 
dist/build/alex/alex-tmp/Main.o )

src/Main.hs:316:25:
    Ambiguous type variable `e' in the constraint:
      `GHC.Exception.Exception e'
        arising from a use of `throw' at src/Main.hs:316:25-31
    Probable fix: add a type signature that fixes these type variable(s)

Lines 314 through 316 in src/Main.hs are:

    r <- Exception.catch 
	   (unblock (thing a))
	   (\e -> do { after a; throw e })

I guess the error in itself makes some sense, because throw can not be 
resolved without knowing a concrete instance of e. I just don't get why I get 
this error in a release version of alex; I would imagine other people do not 
get this error. What am I missing?

Regards,
Philip


More information about the Glasgow-haskell-users mailing list