 
 import Foundation
 
+// High-level helper functions
+
 func tabulate<A>(times:Int, _ transform: (Int) -> A) -> [A] {
     return (0..<times).map(transform)
 }
+
+// Protocols and protocol extensions
 
 protocol Arbitrary: Smaller {
     static func arbitrary() -> Self

        return nil
    }
}

extension Int: Arbitrary {
    static func arbitrary() -> Int {

    print("\(message) passed tests \(numberOfIterations) times")
}

// Quick-check implementation

func check<A: Arbitrary>(_ message: String, _ property: @escaping (A) -> Bool) {
    let arbitraryInstance = ArbitraryInstance(arbitrary: A.arbitrary, smaller: { $0.smaller() })
    checkHelper(arbitraryInstance, property, message)
