Perhaps the easiest way would be to pre-walk the broadcast tree, check for any unsupported types, and in such cases punt to the DefaultArrayStyle implementation. For example, see how SparseArrays supports just some specific cases, even though its array style is slightly greedier than it can support: