ラムダ関数が保存できない??

railsで自作のクラスをsessionに入れて保存しようとしたら、
エラーが出た。


エラーの内容は以下のとおり

no marshal_dump is defined for class Proc


初めて見たエラーでよくわからない。
Procという単語があるとこから推測するとクロージャが原因だろうか。


自作クラスではコンストラクタでインスタンス変数に
クロージャをセットしている。
そのクロージャ内からコンストラクタの引数をレキシカル参照している。


どうやらそれが原因らしい。
引数をインスタンス変数に、
クロージャをメソッドに、
それぞれ置き換えてやると正しく動作した。


実はsessionがというよりクロージャをテキストファイルに
シリアライズして保存する事ができないらしい。
クロージャを保存しようとするとその実行に対するスタックも
保存する必要があるからなのかな??