Я новичок в Haskell, и у меня возникают проблемы с определением кода. Что мне нужно сделать, чтобы получить правильные типы в этом разделе ввода-вывода моего кода?
Заранее спасибо.
loadPeople :: FilePath -> IO [Person]
loadPeople file = do
lines <- getLines file
map parsePerson lines
getLines :: FilePath -> IO [String]
getLines = liftM lines . readFile
parsePerson :: String -> Person
parsePerson line = ...........
map
подчеркнуто красным в Лексе, и я получаю ошибку компиляции:
src\Main.hs:13:3:
Couldn't match expected type `IO [Person]'
against inferred type `[Person]'
In the expression: map parsePerson lines
In the expression:
do { lines <- getLines file;
map parsePerson lines }
In the definition of `loadPeople':
loadPeople file
= do { lines <- getLines file;
map parsePerson lines }