A lot of ambiguities due to too general `rand`signatures
We are still using this quite heavily in Oscar land, but after playing around with https://github.com/JuliaTesting/Aqua.jl (which helps detecting method ambiguities), I noticed that RandomExtensions.jl leads to a lot of method ambiguities. For example, the methods
rand(X, ::Type{Tuple}, n::Integer)
@ RandomExtensions ~/.julia/packages/RandomExtensions/qAD6J/src/containers.jl:53
rand(X, t::Type{<:Array}, dims::Integer...)
@ RandomExtensions ~/.julia/packages/RandomExtensions/qAD6J/src/containers.jl:106
will make the pass-through methods
rand(T::MyAbstractType, v...) = rand(GLOBAL_RNG, T, v...)
ambiguous for certain input types (note that I cannot pin down the type of v directly, since T is abstract and there are many possible combinations).
They are usually fine in practice, but it just looks bad. There are so many, that ignoring them might hide real ambiguities.
One problem with these methods in "containers.jl" is that they are doing type piracy, so the plan is to split the bulk of this package into a non-pirating part, which Oscar could be updated to depend on (last time I checked, Oscar was not depending on methods defined in this file).