|
|
|
|
|
by nyrikki
261 days ago
|
|
That is because typing in this case is converting a semantic (run time) property into a trivial property (T/F). It is just making a trade off that is often a reasonable pragmatic default, but if taken as an absolute truth, can lead to brittle systems stuck in concrete. Not all problems can be reduced to decision problems, which is what a trivial property is. For me looking at how algebraic data types depend on a sum operation that uses either tagged unions or disjoint unions is a useful lens into the limits. Note that you can use patterns like ports and adapters which may help avoid some of that brittleness, especially with anti-corruption layers in more complex systems/orgs or where you don’t have leverage to enforce contracts. But yes if you can reduce your problems to decision problems where you have access to both T and F via syntactic or trivial semantics you should. But when you convert pragmatic defaults to hard requirements you might run into the edges. |
|