 // Might have to tweak for linux
 import Foundation
 
+/**
+    Validates a given sequence is unique
+*/
 public struct Unique<
     T where
     T: Sequence,
     T: Validatable,
     T.Iterator.Element: Equatable>: ValidationSuite {
 
+    /**
+        validate
+    */
     public static func validate(input sequence: T) throws {
         var uniqueValues: [T.Iterator.Element] = []
         for value in sequence {

        }
    }

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


    private let iteratorFactory: Void -> AnyIterator<T>

    /**
     Create in validation against passed iterator

     - parameter sequence: the sequence to check if contains
    */
    public init<S: Sequence where S.Iterator.Element == T>(_ sequence: S) {
        iteratorFactory = {
            var iterator = sequence.makeIterator()
