использование oneOf в Haskell, ошибки при компиляции
Вопрос
Я полный новичок в 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 = ...
Не связан с StackOverflow