Я написал кучу кода в Haskell, чтобы создать индекс текста. Верхняя функция выглядит так:
index :: String -> [(String, [Integer])]
index a = [...]
Теперь я хочу дать этой функции строку, считанную из файла:
index readFile "input.txt"
Что не будет работать, потому что readFile имеет тип FilePath → IO String.
Не удалось совместить ожидаемый тип 'String' против предполагаемого типа 'IO String'
Я вижу ошибку, но я не могу найти какую-либо функцию с типом:
IO String -> String
Я думаю, что ключ к успеху лежит где-то под некоторыми Монадами, но я не мог найти способ решить мою проблему.