Swift 5.9 new Noncopyable types and consuming functions.
I think all these things could be worth exploring for Crystal at some point (at least it had crossed my mind before that something like this might be valuable…).
If we were to port those snippets to Crystal, I don’t think I understand why the states need to be specializations of a single generic, rather than a simple union