Hi all, I'm just writing with a broad question about how to structure a module in Julia.
For my own modules, I've tended to follow the example of the Distributions and Distances package, where each distribution (or distance) is its own type, and then there is a small number of generic functions (eg "evaluate") that use multiple dispatch to return the appropriate value depending on the input type. But I've seen source code in other packages that indicates a different strategy. For example, the Optim package appears (and please correct me if I'm wrong - I'm definitely not an expert) to have a different Symbol for each optimisation algorithm, and then uses if elseif statements to ensure the right optimisation procedure is called. A second strategy would be the SmoothingKernels package which appears to have a different function name for each kernel. So my question: Is there a preferred "julian" way of doing things, or is it a case of whatever seems to be the best fit on a case-by-case basis? Cheers, Colin