RustはGCのない言語なので、GCがあった時にふつうに書けていたコードが書けなくなります。その典型例はリスト・ツリー・グラフといった再帰的な構造です。 これに対してドキュメントや記事を読むと、以下のような型が出てきます。Haskellのモナドスタックの再来と怯える人もいるかも知れません。 enum List { Cons(Rc<RefCell<i32>>, Rc<List>), Nil, } pub struct NodeRef<T>(Rc<RefCell<Node<T>>>); type Link<T> = Option<Rc<RefCell<Node<T>>>>; type WeakLink<T> = Option<Weak<RefCell<Node<T>>>>; 大抵のドキュメントは、木構造を実装してみようというテーマで、上のような型がなぜ必要になるのか?を説明してから、そのマルチ