[Haskell-beginners] type def messes up
daniel.is.fischer at web.de
Sat Jun 26 15:49:40 EDT 2010
On Saturday 26 June 2010 21:27:20, prad wrote:
> sometimes i have copied a typedef from a tutorial or demo and get
> errors. i take the typedef out and the program runs fine.
Then ask ghci what the type is, e.g.
Prelude> :t reverse
reverse :: [a] -> [a]
> i don't think the problem lies with the person creating the typedef
> because they are very experienced.
Maybe, maybe not.
> is it possible that the matter has to do with the interpreter eg hugs
> vs ghci and such?
> or possibly an update of the syntax over time?
Unlikely for simple functions. For advanced stuff that requires extensions,
that can happen.
> for instance, i'm going through rex page's "two dozen short lessons in
> haskell" from uni of oklahoma. they use hugs and the error message for
> reverse 'x'
> is completely different from what i get using ghci.
ghc and hugs give very different error messages, but it boils down to the
Hugs> reverse 'x'
ERROR - Type error in application
*** Expression : reverse 'x'
*** Term : 'x'
*** Type : Char
*** Does not match : [a]
Prelude> reverse 'x'
Couldn't match expected type `[a]' against inferred type `Char'
In the first argument of `reverse', namely 'x'
In the expression: reverse 'x'
In the definition of `it': it = reverse 'x'
Both say that you passed an argument of type Char to a function which works
on lists (of any type).
More information about the Beginners