[Haskell-cafe] Getting an attribute of an object

Jules Bean jules at jellybean.co.uk
Fri Feb 11 14:47:28 EST 2005

On 11 Feb 2005, at 19:09, Dmitri Pissarenko wrote:
> readClassifiedImages :: [ClassifiedImage] -> [IO (ClassifiedImage, 
> Image)]
> which is what I want.
> However, when in the program I insert the statement
> classifiedImagesWithData :: [IO (ClassifiedImage, Image)]
> so that it becomes
> do ...
> classifiedImagesWithData <- (readClassifiedImages trainingSet)
> classifiedImagesWithData :: [IO (ClassifiedImage, Image)] -- error line

>         Inferred type: IO (ClassifiedImage, Image)

Well, can you explain why you are using do notation at all?
In do notation, the <- form, informally speaking, 'strips off' a Monad. 
Because the type of readClassifiedImages is a list, then haskell knows 
you are using the list Monad, so the effect is to work within the list 

It may be you'd profit from reading some of the Monad tutorials out 


More information about the Haskell-Cafe mailing list