Keeping it small: helping the compiler to remove unused code in OCaml

OCaml has some facilities for eliminating unused code - I explore what it can do, and how you structure your code to take advantage of it