firetrap
firetrap copied to clipboard
Encode the FTP session's lifecycle as FSM in the type system
By representing the FTP session as a finite-state machine, the code will be safer and simpler to reason about. I suspect it will also be easier to change.