I'll quote another ongoing thread "Yes; Base is *implicitly* imported, meaning that you can *use* any function in Base without having to *explicitly* import it. However, in order to *extend* the function with new methods, you do need to import it *explicitly* (using a statement like import Base.start, Base.next, Base.done or import Base: start, next, done). Otherwise, you’ll *shadow* the function in Base instead."
So you can either import import import Base.show first, or change the method definition to Base.show(args...) =... I'm actually not sure how it will interact with your Array type vs Base.Array I feel like this is one of the most frequently asked questions on the list. That may be a sign that could use more discoverability.