Yaron Minsky of Jane Street gave this talk to Harvard's OCaml-based CS51 class in 2010. It collects advice on being an effective ML programmer in an industrial setting.
Why Hacker News points people here: It is the go-to source for the idea of making illegal states unrepresentable through types, with the key moment at 28:02.
“Richard Feldman dives deeper into the topic with a lot more examples in”HN comment, 2018
“I've found this to be the single most valuable programming technique I've learnt.”
Minsky on making invalid states impossible
Full comment
That'll be a great addition to the book. Can I also recommend Yaron Minsky's talk on OCaml, specifically the part where he talks about "making invalid states impossible": this video I've found this to be the single most valuable programming technique I've learnt. Richard Feldman dives deeper into the topic with a lot more examples in link
RecommendschilleeFeb 2018
“I thought this video had a good example.”
Good example of encoding invariants in types
Full comment
I guess the closest thing to what you want in Ocaml is modular implicits. link As far as the tradeoff, my view on types is a bit different than yours, I think. First, a quick note: > specify manually all the types of all the functions This is usually encouraged in OCaml, in the form of a .mli file. I think types can be a lot more than "compiler checked documentation that can also work as basic tests". They allow you to encode invariants that allow the compiler to check more than basic stuff. I thought this video had a good example. this video
Cites itmarshrayNov 2021
“This video shows it at 28:02.”
Source of 'make illegal states unrepresentable' at 28:02
Full comment
"Make illegal states unrepresentable" is usually attributed to Yaron Minsky of Jane Street. This video shows it at 28:02. linkthis video