     }
 }
 
-struct Vec4: Vector {
+struct Vec4: Vector, SpecializedVector {
     let count = 4
     var data = [Float]( count: 4, repeatedValue: 0.0 )
     subscript( index: Int ) -> Float {

        set( y ) { data[1] = y    }
    }
    init( v: [Float] ) {
        self.data = [data[0], data[1]]
    }
    init( x: Float, y: Float ) {
        self.data = [x,y]

        set( b ) { data[2] = b    }
    }
    init( v: [Float] ) {
        self.data = v
    }
    init( x: Float, y: Float, z: Float ) {
        self.data = [x,y,z]
