ErlangEOSのJavaScript,Python,Rubyとの連携

 俺はErlang大好きっ子だが、バイナリーデータを加工しまくるような処理はF#,C#で書いている。Erlangはこういった他の言語との連携も実によく考えられている。F#,C#で作っている部分でどうにも対処できないようなエラーが起きて落ちてもErlangに何の影響も与えずに自動で再起動、処理もリトライするように作ってある。こんな処理が簡単に作れてしまうのがErlangの素晴らしいところだ。

なんていう汎用的なライブラリーがある。ところが、これの使い方が美しくない。
例えばこんな風、

{ok, P} = python:start().
python:call(P, math, factorial, [10]).

これをErlangEOSで書くと、

P = #<erlport>(python){}
P.math.factorial(10)

と書ける。若しくは、

P = #<erlport>(python){}
Math = P.math
Math.factorial(10)

これって、もう完全にErlangの一部として使えるでしょ。
こんな感じでJavaScript,Python,RubyErlangをいい感じで統合できるようになった。

結構いい感じで動いているんだけど、困っていることがある。 REPLで使おうとするとうまくいかない。erlで起動して明示的にreplの関数を呼べば動くんだが、いったい何が違うんだろうか。