использование oneOf в Haskell, ошибки при компиляции

StackOverflow https://stackoverflow.com/questions/2053510

  •  20-09-2019
  •  | 
  •  

Вопрос

Я полный новичок в Haskell.Я пытаюсь скомпилировать загруженный мной файл Haskell, но он выдает некоторые ошибки.

No instance for (Text.Parsec.Prim.Stream s m Char)
  arising from a use of 'letter' at Parse.lhs:649:26-31
Possible fix:
  add an instance declaration for (Text.Parsec.Prim.Stream s m Char)
In the first argument of '(<|>)', namely 'letter'
In the expression: letter <|> oneOf "_"
In the definition of 'firstAllowed':
  firstAllowed = letter <|> oneOf "_"

Не уверен, что этого достаточно, но вот участок кода с ошибкой:

parseIdent = do { str <- indent
                ; return (makeIdent str)
                } <?> "identifier"
  where firstAllowed = oneOf "_" <|> letter
Это было полезно?

Решение

В той части, где вы процитировали местное firstAllowed функция, похоже, нигде не используется.Что произойдет, если удалить where линия?

В качестве альтернативы вы можете попробовать добавить эту подпись типа в firstAllowed:

 where
    firstAllowed :: Stream s m Char => ParsecT s u m Char
    firstAllowed = ...
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top