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