Effective ML
Why Hacker News recommends it
It is the go-to source for the idea of making illegal states unrepresentable through types, with the key moment at 28:02.
What it is
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.
Recommended by 2 HN commenters across 2 different months, 2018 to 2021.
What Hacker News said
Strong rec jasim · 2018-11 · on “Book Review: A Philosophy of Software Design”
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]
Recommends chillee · 2018-02 · on “What Made Lisp Different (2002)”
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 marshray · 2021-11 · on “Why Co–Star Uses Haskell”
"Make illegal states unrepresentable" is usually attributed to Yaron Minsky of Jane Street. This video shows it at 28:02. [LINK] [this video]