This is solved cleanly in OCaml 4.08+ with opening of module literals, so if ReScript upgrades to that next year, we will get that solution automatically:
Hi, this is not discouraged, it happens to not be documented and contribution to documentation is welcome.
It is indeed a bit ugly that sugar for extension point is not supported.
The open syntax would be very nice. Might it be an idea to backport the feature so we have this syntax pre upgrading to OCaml 4.08? It also eliminates the needs of having a private keyword.
Regardless of whether upgrading or not.
I find private let or let private always more intuitive than open { .. }, the purpose is not to save some characters, it’s that people understand private without any further explanations which already appears in other languages like F# as mentioned above