7.10 局所的 open

OCaml 3.12 〜

expr ::= ...
| let open module-path in expr
| module-path .( expr )

let open module-path in exprmodule-path.( expr ) はまったく等価です。これらは、 module-path で参照されるモジュールを式 expr のスコープ内で局所的に open します。

open のスコープを struct 全体から単一の式に制限することで、大域的なスコープを汚染せずに、 open したモジュールの構成要素を短かい名前で参照できるようになります。それだけでなく、これによりコードはより読みやすく(open が識別子使用箇所に近く)リファクタリングしやすく(コード断片がより自己完結的に)なります。