← Back to context

Comment by eyelidlessness

2 months ago

It’s very situational. If you can predict the shape of error cases, anything that doesn’t match that shape will do. If you can’t, you can fabricate a nominal type in one way or another (such as the symbol suggestion made by a sibling commenter, or by a class with a private member). The broad strokes solution though is to use a type that:

1. Won’t be assignable to the invalid thing.

2. Conveys some human-meaningful information about what was expected/wrong and what would resolve it.