> Reason still hasn't had its async story ironed out,
Reason's async story is pretty simple: use promises until the let-syntax (like generalized do-notation) lands, then use that.
> "ReasonML strings are encoded as UTF-8 and not compatible with JavaScript’s UTF-16 strings"
Unfortunately this is inaccurate, and you left out a significant detail from the article. Let's go point by point here:
- Reason strings are not encoded as UTF-8, in fact they aren't encoded at all.
- But, when targeting JavaScript using the BuckleScript compiler, strings can contain Unicode characters and use the JavaScript runtime's support for Unicode.
- This is not a short-term workaround, but the intended solution.
Reason still hasn't had its async story ironed out, and has poor support for Unicode[0]
[0] "ReasonML strings are encoded as UTF-8 and not compatible with JavaScript’s UTF-16 strings" (from https://2ality.com/2017/12/basic-types-reasonml.html)