Chapter 8  Language extensions

This chapter describes language extensions and convenience features that are implemented in OCaml, but not described in the OCaml reference manual.

10  Overriding in open statements

(Introduced in OCaml 4.01)

definition::= ...  
   open! module-path  
 
specification::= ...  
   open! module-path  
 
expr::= ...  
  let open! module-path in  expr  
 
class-body-type::= ...  
   let open! module-path in  class-body-type  
 
class-expr::= ...  
   let open! module-path in  class-expr  
 

Since OCaml 4.01, open statements shadowing an existing identifier (which is later used) trigger the warning 44. Adding a ! character after the open keyword indicates that such a shadowing is intentional and should not trigger the warning.

This is also available (since OCaml 4.06) for local opens in class expressions and class type expressions.