OCaml extended with modular implicits