Apply function to tuple type parameters in a stable way

I think the problem may be with all then (and through it, reducedim); not sure if these functions can generally be type stable given they work on collections which can be anything. In your case, though if you know for sure that there’s no missing case, why not remove the branch and just do

myproperty(::Type{T}) where T <: Tuple = all(myproperty, T.parameters)::Bool

this will error if at runtime any of the parameter is missing but should be type stable (I think).