ECMAScript book

However in C++ it happens all too easily that seemingly innocuous changes launched a cascade of massive re-compiles (which ultimately impacted “binary compatibility” as well) - unless one was hyper-vigilant about using compilation firewalls (pImpl idiom) everywhere (i.e. more mental tax) - which all too often wasn’t the case if the code authors were of the “C++ as a better C” persuasion. The lack of compilation firewalls could also make it extremely difficult to put legacy code under unit test.

I like the way module Three didn’t have to declare it’s X_int-ness. Though for int_bumper and float_bumper it looks like a cast is going on. Certainly seems like OCaml’s module system has a bit of a different way of doing things.

Have you come across Jon Harrop’s opinion regarding Reason? Yikes.