 }
 
 public func ||(lhs: NSPredicate, rhs: NSPredicate) -> NSPredicate {
+    let c: CVarArgType? = nil
     return NSCompoundPredicate.orPredicateWithSubpredicates([lhs, rhs])
 }
 
-public func ==<A: AttributeType>(lhs: A, rhs: Int) -> NSPredicate {
-    return NSPredicate(format: "%K == %d", lhs.description, rhs)
-}
-
-public func <<A: AttributeType>(lhs: A, rhs: Int) -> NSPredicate {
-    return NSPredicate(format: "%K < %d", lhs.description, rhs)
-}
-
-public func ><A: AttributeType>(lhs: A, rhs: Int) -> NSPredicate {
-    return NSPredicate(format: "%K > %d", lhs.description, rhs)
+public func ==<A: AttributeType>(lhs: A, rhs: NSNumber) -> NSPredicate {
+    return NSPredicate(format: "%K == %@", lhs.description, rhs)
 }
 
 public func ==<A: AttributeType>(lhs: A, rhs: NSObject) -> NSPredicate {
     return NSPredicate(format: "%K == %@", lhs.description, rhs)
 }
 
-public func ==<A: AttributeType>(lhs: A, rhs: String) -> NSPredicate {
-    return NSPredicate(format: "%K == %@", lhs.description, rhs)
-}
-

        _parent = parent
    }
    
    public var description: String {
        if let parent = _parent {
            return (parent.description == "" ? "" : ".") + _name!
        } else {

    init(_ name: String, parent: AttributeType?)
}

public class Attribute : NSObject, AttributeType {
    
    private let _name: String?
    private let _parent: AttributeType?
    
    public override required init() {
        _name = nil
        _parent = nil
    }
