In some previous posts, I thought that SML was lacking for real-world use. However, this was a mistake.
Failing to Call GObjects From SML
In particular, there were two points where I was wrong. The second was that there was no library to consume GObject interfaces. However, I recently found Giraffe which is a fine implementation.
Giraffe GObject Introspection library for SML
The first mistake I made was where I gave up on SML for GUIs because I couldn't get sml_tk to work in a multi-thread app. I since successfully used Gtk-3.0 via GObject in this scenario though.
Poly/ML and Giraffe seem to be very high quality, but nevertheless I had to make a few changes.
For Poly/ML:
You need to remember to supply this "--mainthreadml 1" option any time you run a program you have compiled.
For Giraffe:
Now I have a satisfactory toolchain to write native-code ARM64 GUIs :-)