コンパイル時に、HaskellでのエラーをoneOfのを使用して
質問
私は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