         return nil
     }
 }
+
+// Extensions
 
 extension Int: Arbitrary {
     static func arbitrary() -> Int {

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

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

    let instance = ArbitraryInstance(arbitrary: Array.arbitrary, smaller: { (x: [A]) in x.smaller() })
    checkHelper(instance, property, message)
}

// Client code examples

check("Every string starts with hello or empty") { (s: String) in
    s.isEmpty || s.hasPrefix("Hello")
