A journey from Procedural to Object-Oriented, to Functional Type-level implementations for managing state.