TIL OCaml has .mli files which are much like .h files in C: they define (and enforce) a public interface.
This seems to be less popular in newer languages: we tend to prefer public/private annotations in a single file. I'm not sure why this changed.
miniblog.
Related Posts
I've released difftastic 0.70! In this release:
* Added Dockerfile and fish shell support
* Improved Dart, Emacs Lisp, Erlang, Java, OCaml, PHP,
Protocol Buffers and TOML.
* A bunch of display and performance fixes.
I've released difftastic 0.62! In this release:
* Updated parsers for Bash, C, C++, C#, CSS, Go, Haskell, HTML, Java, JavaScript, JSON, Julia, Lua, Objective-C, OCaml, PHP, Python, Ruby, Scala, TOML, TypeScript and XML.
* Obligatory crash fixes.
I really like pattern matching in Rust, but I find myself using it less and less.
`if let` and `let ... else` require substantially less indentation, and I often use them for Option values.
I don't miss this syntactic sugar in OCaml though. Maybe it's just because OCaml has a 2 space indent, unlike Rust's 4 space indent?

