A module can be defined anywhere, in any lisp expression, but usually
it only makes sense if the module
foo.bar.baz is defined in a
file like <prefix>/foo/bar/baz.jl, and you don’t put anything
other than the module definition in that file. Periods in module name
are converted to directory separator, in Unix a slash ’/’.
Rep modules are searched from directories specified in
load-path. Files can be byte-compiled, and usually they have a
.jlc, instead of
.jl for plain Lisp source.
load-path and suffixes are fully described in
See Load Function.