fn car (w :&World, x :Q) -> Ret { match &*x.clone().lock().unwrap() { Node::Cons(cell) => Ok (cell.car.clone()), _ => error (w, "Not a cons", x.clone()) }} // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // Here the whole Q is still locked // // error() is a function which may enter another REPL and _not_ // just some error sentinel. //