pub fn set<T: Clone>(
    index: usize,
    data: T,
    node: Option<Rc<Node<T>>>
) -> Rc<Node<T>>