Have I been re-inventing useReducer or Redux? - Theo's Typesafe Cult