HashMap/Set<Pin<Arc<T>>>
based fully safety tree collection
```rust
let mut pt = PinTree::
let a = &pt.node(1); let b = &pt.node(2); let c = &pt.node(3);
pt.setparent(b, a); pt.setparent(c, a); // a // ↙ ↘ // b c
asserteq!(pt.isparent(b, a), true);
asserteq!(pt.ischild(a, c), true);
rust
// Circular references are safe
pt.setparent(b, a);
pt.setparent(a, c);
pt.set_parent(c, b);
// a
// ↙ ↖
// b → c
pt.set_parent(a, a);
// a ⟲
rust
let mut pt = PinTree::
let a = pt.node(Mutex::new(1)); let mut x = a.lock().unwrap(); asserteq!(*x, 1); *x = 2; asserteq!(*x, 2); ```