Although that particular error message seems to be specific to `Blob`, it also
breaks with other parametric roles (such as `Array`), because the generic
parameter T of the outer role seems to be passed through without being
specialized first.
Shorter examples:
➜ role R[::T] { method a { Array[T].new } }; say R[Int].a.perl;
No such method 'perl' for invocant of type 'T'
in block <unit> at <unknown file> line 1
➜ role R[::T] { method a { Blob[T].new } }; say R[Int].a.perl;
concatenate requires a concrete string, but got null
in any protect at gen/moar/stage2/NQPCORE.setting line 1033
in method a at <unknown file> line 1
in block <unit> at <unknown file> line 1
Looks related to https://rt.perl.org/Ticket/Display.html?id=131947 .