質問

私は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