         throw error(with: sequence)
     }
 }
+
+


    private let iteratorFactory: Void -> AnyIterator<T>

    public init<S: Sequence where S.Iterator.Element == T>(_ sequence: S) {
        iteratorFactory = {
            var iterator = sequence.makeIterator()

        }
    }


    /**
        validate
    */
    public func validate(input value: T) throws {
        let iterator = iteratorFactory()
        for next in iterator where next == value {
