
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 same: hugs: Hugs> reverse 'x' ERROR - Type error in application *** Expression : reverse 'x' *** Term : 'x' *** Type : Char *** Does not match : [a] ghci: Prelude> reverse 'x' <interactive>:1:8: 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).