Regular Functor も行く? cata_charn の証明を与えるなら、他の functor でもいいんじゃない? polynomial functor に限らなくてもいいよね。
Adjoint fold/余モナドの話は、Ralf Hinze の conjugate hylo でまとめられているが?
hylo できないのは残念ですね。
Rel でやらなかったん? Coq の関数を rel に見て、ゴニョゴニョして戻ってこれればいいんじゃない?
Haskell の deriving みたいな? ADT定義から色々出せるといいけどね。
そして、プログラム変換は何ができたらいいんだろうね、と。
少し先のものなら、polynomial を regular とかにしようか? join list とか rose tree とか。すぐに polynomial じゃ無くなっちゃうから。