Re:Types as axioms, or: playing god with static types
by lexi-lambda on Saturday August 15, 2020 @10:54AM
(#24169307)
I (the author) did not imply that the definition of EvenList I gave would admit [1, 2, 3, 4]βit only admits [1, 2, [3, 4, []]].
Indeed, this is the whole point of the second half of the blog post: you can enforce lots of invariants by modifying the way you represent your data, at the cost of having to write some additional code to work with your alternative representation. Reread the conclusion.
https://www.typescriptlang.org/play?#code/C4TwDgpgBAogbhAdgG...
I am not a TS type expert by any means, but I don't believe it's possible to express an even list in TS's type system.
But with that said, I enjoyed the article and I agree with the points its making.