私はここで質問した質問の精神の中で、(Generically) Build Parsers from custom data types? @ダニジアーズは美しく動作するソリューションを提供しました。generic-sopとリスト、Data.Proxyなど
f
がHasParser
のインスタンスである場合、f
のリストはHasParser
のインスタンスでもあります。または、ハスケルでは、
instance (HasParser f) => HasParser [f] where
getParser = many' (getParser @f)
まあ、これはコンパイルされません。次のエラーメッセージが表示されます。
error: Not in scope: type variable ‘f’
これらの言語拡張機能の構文はよくわかりません。特に、とProxy
の使用は、私に多くのことを常に混乱させます。読者に最適なドキュメントを見つける場所を教えてください。
あなたは、これは[タイプのアプリケーション](https://ghc.haskell.org/trac/ghc/wiki/TypeApplication)であることを認識し(これはdoesnのGHC-8.0より前には全く働いていませんか?) – leftaroundabout
はい私はそれを認識しています。私はghc 8.0.2を使ってコードをコンパイルしています。 – user2812201