Haskell haskelwiki教程中的parsec错误

Haskell haskelwiki教程中的parsec错误,haskell,Haskell,我在中遵循代码,代码(第2章)给出了一个错误。教程中没有提到作者姓名/电子邮件,所以我来这里寻求建议。代码如下,错误发生在“eof”字上 modulemain其中 导入Text.ParserCombinators.Parsec 解析输入= dodirs那篇教程是很久以前写的,当时parsec很简单。现在,自从parsec-3以来,库可以包装monad,因此您现在必须指定(或消除歧义)在某些时候使用的类型。这是其中之一,给出了eof,例如表达式类型签名eof::Parser()使它可以编译。谢谢。

我在中遵循代码,代码(第2章)给出了一个错误。教程中没有提到作者姓名/电子邮件,所以我来这里寻求建议。代码如下,错误发生在“eof”字上

modulemain其中
导入Text.ParserCombinators.Parsec
解析输入=

dodirs那篇教程是很久以前写的,当时parsec很简单。现在,自从parsec-3以来,库可以包装monad,因此您现在必须指定(或消除歧义)在某些时候使用的类型。这是其中之一,给出了
eof
,例如表达式类型签名
eof::Parser()
使它可以编译。

谢谢。另外,从Main调用parseInput设置上下文。在上面的示例中,代码正在生成,主代码来自以前的版本,不调用parseInput。当我修改下一节的主要代码段时,它起了作用。
module Main where

import Text.ParserCombinators.Parsec

parseInput = 
  do dirs <- many dirAndSize
     eof
     return dirs

data Dir = Dir Int String deriving Show

dirAndSize = 
  do size <- many1 digit
     spaces
     dir_name <- anyChar `manyTill` newline
     return (Dir (read size) dir_name)

main = do
    input <- getContents
    putStrLn ("Debug: got inputs: " ++ input)