[Haskell-cafe] Type error in final generator
derek.a.elkins at gmail.com
Sat Dec 8 19:53:54 EST 2007
On Sat, 2007-12-08 at 16:39 -0800, Bryan O'Sullivan wrote:
> Loganathan Lingappan wrote:
> > main = do
> > hSetBuffering stdin LineBuffering
> > numList <- processInputs
> > foldr (+) 0 numList
> The type of main is understood to be IO (), so it can't return anything.
> You could work around this by rewriting the last line above as follows:
> print (foldr (+) 0 numList)
> This prints the number, which is presumably what you want, and print has
> type IO (), so it works out nicely here.
Actually, as the error message says, the type of main is IO a so it can
'return' -anything- and that will be discarded as the type makes clear.
The issue is that foldr (+) 0 numList :: Integer and that's not IO a for
any a. Either way, Bryan's suggestion is probably what you want.
More information about the Haskell-Cafe