inline bool is_type_subarray(const ndt::type &subarray_tp) const { return (!subarray_tp.is_builtin() && (*this) == (*subarray_tp.extended())) || m_element_tp.is_type_subarray(subarray_tp); }
inline bool is_type_subarray(const ndt::type& subarray_tp) const { // Uniform dimensions can share one implementation return (!subarray_tp.is_builtin() && (*this) == (*subarray_tp.extended())) || m_target_tp.is_type_subarray(subarray_tp); }