I use Base/Core as my default Stdlib now. Only time I don’t is when I’m trying to make a more general opam package. I also use some of the extra libraries like Bin_prot, Bonsai, Incremental, ppx_expect, fields, jane, show, variants, RPC_parallel, and I’ve played around with vcaml, and the pythonlib. Mostly for personal projects. The Core and Async libraries are comprehensive and there’s rarely data structures I’ve needed that are missing (one case was R-Trees and B-Trees). The standardized conventions make it easy to understand any library from Jane Street, e.g. _exn
for exception functions length
is always the “size” of a data structure, the t
type is first with labels for the rest of the arguments to support both pipeline and non-pipeline styles. type t
is always the main type for a module, etc. A big thank you to Jane Street!
Edit: Oh yeah and Shexp
is great for shell scripting, I use that quite regularly.