もにゃどっぽいあだぷた

アダプタの合成に際して Monad っぽく付加的な情報を織り込む手法は応用範囲が広くて面白そうな実例はいくつも見つかるけれど,純粋な関数型言語と異なって Valid Expression に副作用があるので C++ における実現はそー簡単じゃにゃいにゃー,という予感っつーか悪寒(風邪をひいているので).
合成に際して型情報(e.g. ET)だけを持ちまわって,副作用が生じる Valid Expression の最初の呼び出しにおいて持ちまわった型情報から副作用を生じさせる型のオブジェクトに変換するっつー簡単な方法だけ思いついた.多分,「Type-Erasure + Pimpl + COWっぽい何か」な形でできるはず.ってまた抽象的なことしか書いてないから何書いているか分からないとゆ〜.ま,いいや.自分向けのメモだし.
どっかでこんなの形式化されていないかにゃー.
応用事例としてとりあえず思いついているのは,前に書いた Blocking な Monad のほかに,例外を捕捉したら close を自動で hook して reraise するよ〜な合成演算とか.だめぽ? -> 書いてから15秒後にだめぽという結論に至りました.めでたしめでたし.