// vectors.clay // just make the shadow block toplevel, for more regular syntax ? shadow { Vector(s:'S) | Sequence?('S) { ... } Vector(s:'S) | SizedSequence?('S) { ... } Vector(rvalue s:Vector['T]) { ... } } // randomaccesssequences.clay Vector(s:'S) | RandomAccessSequence?('S) { ... } // forwardsequences.clay Vector(s:'S) | ForwardSequence?('S) { ... }