     
     deinit
     {
-        NSLog("Ups <");
-    }
-    
-}
-
-class PQueue<T where T : Priority> : Queue<T>
+    }
+    
+}
+
+class PQueue<T where T: AnyObject, T:Priority> : Queue<T>
 {
     var maximum:Int? {
         get {

        tail = Element<T>(item: nil, previous: tail);
    }
    
    func each(callback:(Int,T?) -> Void)
    {
        var current = head, idx = 0;
        while ( !(current === tail) )
        {
            let item:T? = (current++)?.item;
            callback(idx++,item);
        }
    }
    

    }
}

func ==<T:AnyObject>(element:Element<T>?, value:T) -> Bool
{
    if let _element = element {
        if let _elementValue = _element.item {
            return value === _elementValue;
        }
    }
    return false;
}

postfix func ++<T>(inout e: Element<T>?) -> Element<T>?
