[Haskell-cafe] GHCi's :t misbehaving

Philippa Cowderoy flippa at flippac.org
Tue Nov 17 20:31:29 EST 2009


I have some mildly complicated parsing code, that uses parsec to return 
a computation (in a state monad) that handles operator precedence - so I 
can handle scoped precedence/fixities, much like in Haskell. I just 
spent a while bolting on some new features. More time than I'd like, I'd 
left it alone for a while and it took a bit of time getting my head 
around it again enough to be okay doing folds on parse results and the 
like. Enough so that I've been leaning on the type checker to tell me 
when I've messed up!

So, I have something that loads into ghci okay now. I go to check the 
type of one of the functions using :t and get this error:
<interactive>:1:0:
    Ambiguous type variable `m' in the constraint:
      `Monad m'
        arising from a use of `constructor' at <interactive>:1:0-10
    Probable fix: add a type signature that fixes these type variable(s)

Now I'm not about the supply the type signature, that's what I asked it 
for! And it ought to typecheck okay, given that the code loaded in the 
first place. I'm about to turn in for the night, but I'm wondering 
what's going on here. Anyone?

-- 
flippa at flippac.org


More information about the Haskell-Cafe mailing list