haskell-jp / beginners #22 at 2022-10-30 22:17:33 +0900

ただ実際使おうにも、 1 文字を表すのに Char を使うべきか Text.singleton かなど迷う点が多くありそうです。
Textにおける一文字を表すのであれば、原則 Char しか選択肢はないと思います。 singleton は型ではなく Char を受け取る関数なので。
Text においては `Char` が 1 文字なのですね。 `Char` も自信が無かったですし、 Parsec と組み合わせると、 `Parser Char` と `Parser Text` の選択などで迷います。
まずは人のコードをざっと (100 ~ 400 行くらい) 読めればと思うのですが :grimacing: (Haskell 難しい)
えっと、ご所望のparsecを使ったものではないですが、パーサーコンビネーターの初歩的な概念を学ぶために、 https://www.lambdanote.com/products/haskell の第13章などの本を読むのがおすすめです。Haskellの世界にはparsec以外にも、もっと新しいmegaparsecなどいろいろなパーサーコンビネーターがありますが、基本的な使い方や考え方は全く変わらないので、サンプルとしては十分だと思います。 Text でやろうと String でやろうとも基本は変わりませんし。
あと https://zenn.dev/lotz/articles/91e377138fc4a94f956c の「正規表現」の節も参考になるかも