It would be so nice if these "well typed languages" would be able to interact better with each other. Alas, the GC will probably cause some friction, e.g. the ocaml-rs package makes this pretty visible: https://github.com/zshipko/ocaml-rs/blob/master/examples/rus... . (I have not used either of these projects.)

Maybe the GC would be less of a problem if we didn't want to have the best possible performance as well.

Oh wow, that does seem quite painful. That crate reminds me of how JSC' internal bindings work:

```cpp JSC_DEFINE_HOST_FUNCTION(jsMyFunction, (JSC::JSGlobalObject* globalObject, JSC::CallFrame* callFrame)) { JSC::VM& vm = globalObject->vm(); auto scope = DECLARE_THROW_SCOPE(vm); ... ```

kind of the same thing, seems like -- passing data around to be managed by the GC.