bool PositionList::operator==(const PositionList & list) {
    const PositionList::Node * curr = mHead;
    const PositionList::Node * inner = list.head();
    
    while ( curr != 0) {
        while (inner !=0) {
            if (*curr->pos != *inner->pos)
                return false;
            inner = inner->next();
        }
        inner = list.head();
        curr = curr->next();
    }
    
    return true;
}