1. 2

    As a corollary, here is an example using OCaml’s phantom support: https://blogs.janestreet.com/howto-static-access-control-using-phantom-types/