Follow OCaml's "18.5.2 Low-level interface Rule 5"