Snake case instead of camel case for `Stdlib.{In_,Out_}channel` introduced in OCaml 4.14

I am very glad to discover the new Stdlib.{In_,Out_}channel introduced in OCaml 4.14. Thank you, folks!

Sorry for my remark that is purely bikeshedding, but I had the impression that camel case was usually preferred for naming modules. It is the case for instance for all the standard library modules except these two new ones (and, in particular, it is worth noticing we have BytesLabel, StringLabel, etc.). I am afraid we are going to lose one of the few naming conventions we have with this change.

I understand that the choice was to mirror in_channel and out_channel type names, but one can say that mirroring snake case for type names with camel case for module names is equally valid. Does the choice between {In_,Out_}channel and {In,Out}Channel have been discussed before?

1 Like

The choice has been discussed in Module naming consistency between snake case and camel case in stdlib · Issue #10778 · ocaml/ocaml · GitHub with the Snake_case naming convention winning by inertia.

Personally, I agree with @gasche’s conclusion. Word separators are nice and I would rather not go back to scriptio continua.

6 Likes

Thank you very much @octachron for pointing this and sorry for not having found it myself (I only searched in the discussions of the related issues/PRs and did not find anything). Cool!