From a quick look into XMPP’s clients for android, they seem nice and some have modern features too.
Is there any technical limitation that would prevent xmpp client from having a WhatsApp-like UI?? WhatsApp started out with XMPP and probably still uses a variant of it. If anything, I’d imagine its harder with matrix given the complexity of the protocol.
I got into ocaml recently. I love it. I honestly don’t see issues with the syntax, maybe because I haven’t used it enough.