Cannot remove element from double -linked list

Dear all.
I would like to remove an element from a doubly linked list. But it happens that, I can not assign an element pointer to another one, e.x element.next = another_element.
So it mean I cannot edit any linked/doubly linked list.

LoweringError: Failed in nopython mode pipeline (step: native lowering)
No definition for lowering DeferredType#140568068944656.next = OptionalType(DeferredType#140568068944656) i.e. the type ‘DeferredType#140568068944656 or None’
I came across to this bug report
Lowering error when removing element from the middle of linked list · Issue #2606 · numba/numba (github.com)
but even if it was told to be sold, I still can not get it worked.
I use numba 0.54.1


node_type = numba.deferred_type()
DoubleLinkedNode_spec = [
    ('data', int32),
    ('prev', numba.optional(node_type)),
    ('next', numba.optional(node_type))
]
@jitclass(DoubleLinkedNode_spec)
class LinkedNode(object):
    def __init__(self, data, next, prev):
        self.data = data
        self.next = next
        self.prev = prev
    def nextpend(self, data):
        self.next = LinkedNode(data, None, self)
        return self.next
    def prepend(self, data):
        self.prev = LinkedNode(data, self, None)
        return self.next

@njit
def create_first_node(data):
    return LinkedNode(data, None, None)
node_type.define(LinkedNode.class_type.instance_type)

@njit
def convert_np_array_to_DLL(arr):
    last = create_first_node(arr[0])
    head=last
    for i in range(1, arr.size):
        last = last.nextpend(arr[i])
    return head, last
head, last = convert_np_array_to_DLL(np.array(list(range(20))))

@ njit
def delete_DLL( element, head,last):
    if  element.prev==None: 
        head = head.next
        element.prev =  None
     elif  element.next==None: 
        last = last.prev
        element.prev.next =  None
    else:          
        x= element.prev
        element.prev= x
        y = x.next 
        y.prev = x
    return  head, last

trip_head, last = convert_np_array_to_DLL(np.array(range(10))
trip_head.data
head=trip_head.next
head=head.next
delete_DLL(trip_head, trip_head, last)