Keeping some type abstract in a module interface for easy refactoring is really pleasant. Really nice point for #OCaml