Re:Julia 1.6 addresses latency issues
by adgjlsfhk1 on Tuesday May 25, 2021 @09:43PM
(#27285164)
I'm kind of unclear what module signatures would be since Julia lets code define modules at runtime, so I don't think this could be meaningfully defined for Julia.
Maybe a better link is Clojure Spec and Racket module contracts.
https://clojure.org/about/spec
For most intents and purposes one can use a (potentially Singleton) type passed as a argument to functions instead of a module containing functions.
And doing that gets you all the tooling and power you could want.
(But probably in a different way to you want it).
Since multiple dispatch takes care of that.
You can compare and contrast MLDatasets.jl (uses submodule per dataset) vs CorpusLoaders.jl (uses a extra type argument per dataset)
https://wiki.haskell.org/Module_signature
https://ocaml.org/learn/tutorials/modules.html