https://github.com/trescenzi/points
Much of it can be worked around as you suggest.
I have typed message passing.. I write erlang wrapping gleam modules.. its pretty easy.