Model, Update, View.
Unlike Elm, Update can mutate the model in place. Also returns a command back to the caller.
proc update(var model, message) -> model, command
Update takes commands (like keypress) and updates model. Possibly returns command like quitting the app.
View builds up a string and returns it, ships to the console.