いう感じで表現できれば、BulletMLをSXML形式で記述できるようになります。簡易的なSXMLのパーサはFParsecを使うと次のような感じに書けます。このパーサによって、全方位弾の弾幕をこんな感じに記述できるようにます。ぶ厚いカッコを一掃できて、いい感じですね。独自形式のパーサについて「括弧も一掃したいんだが。」という人のためにインデント形式をご用意。インデントで構造化されたデータ表現と言えばYAMLがありますが、YAMLほどの表現力は必要がなくて、弾幕をシンプルに書けさえすればよいので独自形式をでっち上げてみました。以下のような感じのインデント形式の弾幕も読み込めるパーサも用意してみました。2つのアンコールの記事がとても参考になりますね。JSON形式のパーサもあってもよいのかも。ながとのソフト倉庫」を利用させてもらいました。#affこれで宇宙っぽい背景が作れちゃいました。判別共用体で型付きDSLをするのは無理ではないけど、段階的にケースが少なくなってどんどん絞り込まれていくような型の場合、それを解釈する処理の実装コストが大きくて結構つらぽよ感溢れました。おすすめできませんね。・頭の中ではすでに出来ている(作り方がわかっていると思っている)ことと、実際に作ってみることは、やっぱり結構なギャップがあるね。結果的に行き当たりばったりのゴリ押し実装になってしまったきらいはあるけど、判別共用体で定義した弾幕が思い通りに動いたときはちょっとした達成感が。おじさんちょっと感動しました。GitHubに晒したソースコード。ツッコミどころ満載なのはある程度は自覚していますが、より良い方法があればアドバイスを。