fn rplacd (w :&World, x :Q, y :Q) -> Ret { match &mut *x.clone().lock().unwrap() { Node::Cons(cell) => { cell.cdr = y; Ok(x) }, _ => error (w, "Not a cons", x.clone()) }} // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // Here the whole Q is still locked