I'm looking for a guidebook or just some rules of thumb on how to organize my
OCaml code.
One example:
Say I have a function called "solveHardProblem". solveHardProblem relies on
several helper functions, which are not going to be useful to any other
functions in the program. So, my first instinct would be to define all the
helpers using let blocks within the definition of solveHardProblem.
But that would make the definition of solveHardProblem really long -- several
screens of text -- which I've been taught to avoid. Is it wrong to use a module
to hide those functions if the module signature will contain only that of
solveHardProblem?
And say you DO choose to use a module... The OCaml documentation says that the
compiler can automatically infer the signature without the need to create a .mli
file for it. Does anyone actually use that feature in practice, or is creating
a sig hard-wired to the act of creating a struct?
Thanks,
-Ian