I\'m beginning Haskell... I tried to write the following trivial function in two different ways, letting Haskell decide the types, and the type system does something different i
As others have pointed out, this is caused by something called the "Monomorphism Restriction".
MR can be useful for writers of Haskell compilers, and there is controversy about whether or not it is worthwhile to have in the language in general. But there is one thing everyone agrees: at the GHCi prompt, MR is nothing but a nuisance.
MR will probably be turned off by default in this context in an upcoming version of GHC. For now, you should disable it in GHCi by creating a text file called ".ghci
" in your home directory that contains a line like this:
:set -XNoMonomorphismRestriction