Reputation: 195
I am used to using the standard function print_int
in OCaml, but when I open the library Base
by Jane Street, as recommended in the book Real World OCaml, I obtain a deprecation warning:
utop # print_int;;
- : int -> unit = <fun>
utop # open Base;;
utop # print_int;;
Line 1, characters 0-9:
Alert deprecated: Base.print_int
- : int -> unit = <fun>
Even worse, when I build it with dune
, as recommended in that book, warnings become errors. What should I do ? Replace print_int
with printf "%i"
? or with Caml.print_int
? Both seem to work but look needlessly complicated. Something else ?
Thank you.
Upvotes: 0
Views: 654
Reputation: 11607
This is answered here: https://ocaml.janestreet.com/ocaml-core/v0.13/doc/base/index.html#using-the-ocaml-standard-library-with-base
Base is intended as a full stdlib replacement. As a result, after an open Base, all the modules, values, types, etc., coming from the OCaml standard library that one normally gets in the default environment are deprecated.
In order to access these values, one must use the
Caml
library, which re-exports them all through the toplevel nameCaml
:Caml.String
,Caml.print_string
, ...
Upvotes: 1