News for hackers. Stuff that matters.
Re:Two Years of OCaml by yawaramin on Tuesday May 02, 2023 @07:52AM (#35786135)
That's funny because I feel the opposite. An interface file saves me from having to wade through the implementation details and lets me focus on the exact parts that are relevant to me as a reader of the code. And yes odoc is nice too but the source of its usefulness usually comes from the fact that it's generated from a carefully curated interface file.
Re:Two Years of OCaml by eviks on Tuesday May 02, 2023 @09:25AM (#35787075)
Would type "dehints" be the best of both worlds: you IDE could hide all the types (just like with type hints it adds them) and you could toggle them to eg hide when reading the code? But then also you could toggle them back when needed instead of having to open an interface file?
Re:Two Years of OCaml by rwmj on Tuesday May 02, 2023 @09:49AM (#35787361)
OCaml IDEs including emacs can do that already, and yes it's a good thing.
Re:Two Years of OCaml by deredede on Tuesday May 02, 2023 @03:51PM (#35793176)
In my opinion the best of both worlds would just be to have Rust-style inline annotations and an "interface mode" that hides implementations (most modern IDEs can already do that) and non-public function.

BTW I am not sure why you would want to hide the types, I find them always useful.

Re:Two Years of OCaml by deredede on Tuesday May 02, 2023 @03:47PM (#35793119)
I agree that the usefulness of documentation systems such as odoc comes from a carefully curated interface, but I disagree with them needing a separate file which in my experience is cause of friction.

Other languages (I am familiar with Rust and Python) also have documentation systems that only show you public methods (and functions, types, etc.), and I find them equally useful as odoc. They just take the visibility information from inline annotations (which are enforced by the compiler, in the case of Rust) instead of a separate file.