Today I was playing a bit with immediate mode GUIs, trying to port the code from https://solhsa.com/imgui/.
This actually worked pretty well and, while still pretty imperative, I was able to hide some of the ugly mutable code with Scala 3 context functions.
For fun, I also made sure that the code received a structure with inputs and returned a sequence of operations that need to be interpreted. That way it is completely backend agnostic (like microui).
Maybe I'll clean it up a bit (at least to add text support) and open source it.