Obj.magic 最強、で終わらそうと思ったのですがそう単純な話でもないらしい。 まず OCaml の private メソッドは、Javaなどのprotected相当で、継承した先のクラスからアクセスすることができます。 しかし呼び出せるのは自分に対してだけで、引数として受け取ったオブジェクトに対して呼び出すといったことはできません。method f x = x#g などと定義すると、fの引数xには"gというpublicメソッドを持った型"しかつけられなくなります。 class hoge = object method private priv = print_endline "hoge:private" end class fuga = object inherit hoge as super (* hogeを継承 *) method priv = super#priv (* 同名の