Hello!
I could now find the place, where an error occurs.
In my program, I have following statement:
do ...
classifiedImagesWithData <- (readClassifiedImages trainingSet)
readClassifiedImages is defined as follows:
readClassifiedImages :: [ClassifiedImage] -> [IO (ClassifiedImage, Image)]
readClassifiedImages classifiedImages = (map readClassifiedImagesSelector
classifiedImages)
When I load the file with the definition of this function into GHCi and then
type in ":t readClassifiedImages", I get the output
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
I get the error
<error>
ExperimentalYaleFaceDb.hs:28:
Couldn't match
`[IO (ClassifiedImage, Image)]'
against
`IO (ClassifiedImage, Image)'
Expected type: [IO (ClassifiedImage, Image)]
Inferred type: IO (ClassifiedImage, Image)
When checking the type signature of the expression:
classifiedImagesWithData :: [IO (ClassifiedImage, Image)]
In a 'do' expression:
classifiedImagesWithData :: [IO (ClassifiedImage, Image)]
</error>
Line 28 is the line marked with "error line" in the code snippet above.
I don't understand why this typing error occurs even though the
readClassifiedImages definition seems to be correct (at least, GHCi loads the
file, where it is located without complaints).
Any hint is highly appreciated.
Best regards
Dmitri Pissarenko
--
Dmitri Pissarenko
Software Engineer
http://dapissarenko.com
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe