     
     public func concat(with b: Self) -> Self {
         .init(intValue: intValue << b.length | b.intValue, length: length + b.length)
-    }
-    
-    public func makeIterator() -> AnyIterator<Bit> {
-        AnyIterator((0 ..< length).lazy.map { i in self[i] }.makeIterator())
     }
     
     public static func < (lhs: Self, rhs: Self) -> Bool {

        }
    }
    
    public var weight: Int {
        self.sum{ Int($0.rawValue) }
    }

    }
}

public struct BitSequence: Collection, Sequence, Hashable, Comparable, ExpressibleByArrayLiteral, CustomStringConvertible, Codable {
    public typealias Element = Bit
    public typealias ArrayLiteralElement = Bit
    
