It's pretty easy to do at runtime without weak pointers, people who write rust are just allergic to reference counting. Which is absurd, because most programmer use RC values thousands of times every day without even thinking about it. It's really this easy: https://pastebin.com/SAeKG7Sw

    Option<Rc<RefCell<Node<T>>>>
works, but you have to manage your own teardown of the list. If you use Weak, releasing the strong reference to the head of the list tears down the whole list.

You want to handle teardown yourself anyway, as otherwise long lists could overflow the stack on drop.

I'm not convinced not using `Weak` is better, though.