関数の定義に問題があるような気がします。 引き数は、a,b,eの3つで、戻りはa,b,c,eの4つでは無いでしょうか、 a,b,c,eは、オブジェクトであり、関数もジェネリック関数になると思われます。 オブジェクトa,bは、時々オブジェクトeを無視するように設計されていることを忘れてはいないでしょうか。 つまり、コアダンプするのも仕様の範囲内かもしれません。