Make the imperative shell just thin glue; the functional core pure and heavily tested; they communicate by message passing.
Conversation
Imperative shell is like a switchboard operator: not a part of the conversation, just someone with two plugs to connect.
1
Yes. Also, it creates state by attaching identity to values, which I don't know how to fit into that metaphor.
2
A minister at a wedding. He reads the vows that the couple chose, they answer yes or no, exchange rings.
1

