Quoting myself from this response in the above linked thread regarding PatModules.jl:
One of the reasons that Julia doesn’t use namespaces as aggressively as Python is because we group related functionality into generic functions. Instead of having
List.map
,String.map
,Tuple.map
, etc, we just have one generic functionmap
. The emphasis is on overloading generic functions rather than putting slightly different versions of functions in separate modules. In order to fully take advantage of multiple dispatch and function overloading, you want a pretty flat namespace.(The
List.map
,String.map
,Tuple.map
example is taken from languages like Erlang and Elm.)