         }
     public static var allOnes:UInt32{return UInt32.max}
     public static var size:Int{return strideof(self)}
-    subscript(index: Int) -> UInt32 {
+    public subscript(index: Int) -> UInt32 {
         get {
             precondition(index<Int32.size,"Byte set index out of range")
             return self & (0xFF << index.toU32) >> index.toU32

        }
    public static var allOnes:Int8{return Int8(bitPattern: UInt8.max)}
    public static var size:Int{return strideof(self)}
    subscript(index: Int) -> Int8 {
        get {
            precondition(index<Int8.size,"Byte set index out of range")
            return ((self.toU8 & (0xFF << index.toU8)) >> index.toU8).to8

        }
    public static var allOnes:Int{return Int(bitPattern: UInt.max)}
    public static var size:Int{return strideof(self)}
    public subscript(index: Int) -> Int {
        get {
            precondition(index<Int.size,"Byte set index out of range")
            if(Int.size == 8){
