メインの :: IO() 関数で、Either モナドを返す関数を使用するのに問題があります。私は、Either を使用せずにコードを実行することができますが、現在はエラーを処理するために Either を使用しています。次のコードがあります。
parse :: Parser a -> String -> Either TypeRep a
parseFile :: String -> Either TypeRep Game
main :: IO()
main = do
content <- readFile "file.txt"
let info = parseFile content
case info of
Left e -> error $ show e
Right game -> let level = makeGame game
Gloss.play ... level ...
したがって、解析関数が a. IO を使用して主にどちらかを処理するにはどうすればよいですか。