Strange behaviour in implicit parameters

Dylan Thurston dpt at math.harvard.edu
Thu Apr 26 17:13:30 EDT 2001


On Thu, Apr 26, 2001 at 01:54:23PM -0600, Alastair Reid wrote:
> $ rm -f T.o && ghc -c -fglasgow-exts T.hs -cpp -DOK=1
> $ rm -f T.o && ghc -c -fglasgow-exts T.hs -cpp -DOK=2
> 
> T.hs:20:
>     Could not deduce `?env :: ([(String, b)], b1)' from the context ()
>     Probable fix:
>         Add `?env :: ([(String, b)], b1)' to the banding(s) for {y}
>         Or add an instance declaration for `?env :: ([(String, b)], b1)'
>     arising from use of implicit parameter `?env' at T.hs:20
>     In the first argument of `fst', namely `env'
>     In the second argument of `lookup', namely `(fst env)'

The type checker seems a bit confused in this line:

>     In the first argument of `fst', namely `env'

since the argument of `fst' is `?env' in that version.  Is this a different
bug?

--Dylan Thurston




More information about the Glasgow-haskell-bugs mailing list