I don't think that substr should work like this. Normal arrays are stringified by ｢substr｣, why would it do something completely different for a native array? So for both UInt and uint8 arrays I'd expect “65 66 67” as an output.

I think this ticket is rejectable as soon as someone can justify it better than me.

The tests are bogus just the assumption that a substr of length 8 will give you 8 bits rather than 8 bytes, that's already wildly inconsistent with what substr does otherwise.
really this code looks like the desire to have `vec` from perl5 implemented in perl6 by re-using the substr name. I think it's the wrong peg to hang this feature off of.