Iced and lifetimes

The main problem you'll have to figure out is mutations. Since RC makes the content immutable and the entire tree is under one of these, you are effectively forced into either adding interior mutability (eg. RefCell for Rc or Mutex for Arc) or implementing immutable edits by creating a new structure (possibly with shared structure), which is pretty annoying, and pretty much completely broken by having back references/cycles (strictly you can pull it off, but it ends up more complex than just doing something else)

I have managed to get it to clean compile. Since I am using Rc and RefCell, the actual test will be when I try using it. I expect in the end I will get rid of the parent pointer and then get rid of the RefCell and Rc uses.
Yours,
Joel