shiratori
少し早いですが先に抜けます。「コンピュータシステムの理論と実装」10章の構文解析器をmegaparsecで作ってみようと思い、ドキュメントやチュートリアルを読みました
cabal --version の出力をパースする処理のテストを通せました。次は取得した cabal --version の出力に基づき処理を分岐するところです。cabal --version の出力からcabal-installのバージョンを調べる処理を実装中ですNetWork.HTTP.Client.Manager -> PackageString -> Maybe VersionString -> [(FlagNameString, Bool)] -> IO PackageDescription と genSourceWithExposedImports :: [PackageDescription] -> Data.Text.Lazy.Text は書けました.あとは cabal install の自動生成と, LICENSE を自動で抜き出してくるコードを書く必要がありますね.Vector.Unboxed.modify で immutable な Union-Find 木を作ってみますmodify は TLE になりました。また Unbox を vector-th-unbox で実装すると、既存の Union-Find が約 2.5 倍高速になりました。