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

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

}

public func ||(lhs: NSPredicate, rhs: NSPredicate) -> NSPredicate {
    let c: CVarArgType? = nil
    return NSCompoundPredicate.orPredicateWithSubpredicates([lhs, 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)
}

