Imperative conditionals with explicit assignment are really convenient when working with state machines. Is there a way to express them? Maybe by making the default assignment explicit? The problem is that this needs local names in a way that I don't see work other than using something like lenses. It's probably easiest to use 'update' explicitly. Yea the whole thing just doesn't fit well. It's either/or.