@sir @emersion this has been one thing that has interested/killed me about doing domain-specific work in F# recently - it's super easy to design types that allow for this kind of pragmatic state restriction but utilizing the interfaces you create (if they're strict enough) becomes an absolute nightmare for some reason.
@emersion @sir That's just describing what states are valid, precisely and completely enough for the machine to be able to ensure that.
Either that, or boiling water, writing tons of overlapping tests for the imaginable cases, just to discover later on, and in the least favorable scenario, that the program indeed fails on a less easily imaginable ones.
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!