option strict でも未定義関数の呼び出しはチェックしませんよね。 互いに呼び出しあうような f と g があったとすると def f g end def g f end どっちを先に書いても、未定義関数を呼び出すことになってしまいます。 しかも回避方法が存在しない。 option strict が未定義関数チェックをしないのは、もしかしたらこれが理由かもしれませんね。 同じワンパスコンパイラである Pascal ではこれを解決するために forward という命令を用意して、 forward g で g という関数を前もって宣言できるようになっています。