integer :: ReadP Integer
integer = do
  ds <- munch1 isDigit
  case reads ds of
    [(n, "")] -> return n
    []        -> pfail
    _         -> error "multiple parses for integer"
integer :: ReadP Integer
integer = do
  ds <- munch1 isDigit
  case reads ds of
    [(n, "")] -> return n
    []        -> pfail
    _         -> error "multiple parses for integer"
integer = do
  ds <- munch1 isDigit
  case reads ds of
    [(n, "")] -> return n
    []        -> pfail
    _         -> error "multiple parses for integer"