The current design, Mongo.jl overloads some Base functions in order to implement mongo operators.
In my opinion, this is a bad idea. For instance, the definition of in clashes with the definition in Compat, since it is defined for in(::Any).
I would like to propose to use a different namespace for Mongo operators, instead of overloading functions from Base.
Another possibility, preferable in my opinion, is to refactor these definitions to multiple-dispatch to a data-structure that is defined in this package. This way Base functions may be overloaded safely.
WARNING: Method definition in(Any) in module Compat at /Users/felipenoris/.julia/v0.6/Compat/src/Compat.jl:912 overwritten in module Mongo at /Users/felipenoris/.julia/v0.6/Mongo/src/query.jl:21.
The current design, Mongo.jl overloads some
Base
functions in order to implement mongo operators.In my opinion, this is a bad idea. For instance, the definition of
in
clashes with the definition in Compat, since it is defined forin(::Any)
.I would like to propose to use a different namespace for Mongo operators, instead of overloading functions from
Base
.Another possibility, preferable in my opinion, is to refactor these definitions to multiple-dispatch to a data-structure that is defined in this package. This way Base functions may be overloaded safely.