News for hackers. Stuff that matters.
Re:Types as axioms, or: playing god with static types by city41 on Saturday August 15, 2020 @10:40AM (#24169199)
The TypeScript EvenList<T> type at the end does not work as the author is implying.

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.

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.

Re:Types as axioms, or: playing god with static types by city41 on Saturday August 15, 2020 @11:24AM (#24169512)
Yup, my bad. Thanks for poking me.