In the case of writing something like a text editor where the data involved is by its very nature mutable, what sort of design paradigm would you use in a functional language?