34

I'm looking at an OCaml source file that begins with the following instruction:

open! MiscParser

I understand that open MiscParser means "open the MiscParser module", but I don't know what the exclamation mark means.

glennsl
  • 28,186
  • 12
  • 57
  • 75
John Wickerson
  • 1,204
  • 12
  • 23

2 Answers2

47

It's to avoid triggering warnings if the open shadows an exisiting identifier. See the manual.

Daniel Bünzli
  • 5,119
  • 20
  • 21
3

Extending what Daniel said, it also tells the compiler to not warn if the open is not used anywhere in the code. One of the common things people do is to open! Core, since Core is such a useful library that one should just open it even they may not be using it.

ethan xu
  • 151
  • 2