What std libraries are *.ml files (compiled by rescript) allowed to use?

For a *.ml files compiled by rescript, what stdlibs is it allowed to use? Can someone point me to the docs/API ?

For example, in *.ml files it apperas:

String.length, String.sub: okay
Int.min : not okay

You can find the older standard library that ReScript inherits from OCaml here: rescript-compiler/jscomp/stdlib-406 at master · rescript-lang/rescript-compiler · GitHub

To your specific examples: String.length is defined here: rescript-compiler/string.mli at b21f7345f5493cc766f637d8d395ae95bee10638 · rescript-lang/rescript-compiler · GitHub

And there is no Int module in this version of the library.

Just fyi the documented libraries are the ones that are encouraged for use in ReScript: API | ReScript API

1 Like

Suppose I have a *.ml file containing some shared data types that I want both OCaml and ReScript to use.

Suppose now, I want to define some helper functions on these data types, that both OCaml and ReScript can use.

Now I’m basically “forced” to use these old OCaml stdlibs that ReScript supports right? It’s not obvious to me what other choices I have.

Yeah, that’s pretty much the choice. You could try Tablecloth from the Darklang project, it’s intended to address this scenario: GitHub - darklang/tablecloth: A standard library with the same API in F#, Rescript and OCaml

But they explicitly call out that it’s probably not production-quality for anyone else.