I guess as a short-term measure we could at least turn RecipesBase and StructTypes into plain dependencies.
For SentinelArrays, I wonder whether we could find a solution by adding an API to ArrayInterfaceCore. Indeed, the problem to solve is just that CategoricalArrays defines a copyto!
method dispatching on the destination array, while SentinelArrays defines one on the source array. But all that’s needed is to call the general fallback defined in SentinelArrays, there’s no particular interaction between these two packages. If we could add an API to indicate that SentinelArrays should take precedence all would work fine.
Regarding JSON.jl, the only line behind @requires
is JSON.lower(x::CategoricalValue) = JSON.lower(unwrap(x))
. I don’t understand how it can causes invalidations. Care to explain?