 		super.init()
 	}
 	
-	override func isSatisfiedBy(candidate: AnyObject) -> Bool {
+	override func isSatisfiedBy(candidate: Any) -> Bool {
 		return one.isSatisfiedBy(candidate) || other.isSatisfiedBy(candidate)
 	}
 }

//

protocol Specification {
	func isSatisfiedBy(candidate: AnyObject) -> Bool
	func and(other: Specification) -> Specification
	func or(other: Specification) -> Specification
	func not() -> Specification
}

class CompositeSpecification: Specification {
	func isSatisfiedBy(candidate: AnyObject) -> Bool {
		// subclass must implement this method
		return false
	}

		super.init()
	}
	
	override func isSatisfiedBy(candidate: Any) -> Bool {
		return !wrapped.isSatisfiedBy(candidate)
	}
}
