ちなみにThe Bookにある一つの例ではderef coercionがなければ*が余計に必要と説明されてる https://doc.rust-lang.org/book/ch15-02-deref.html#implicit-deref-coercions-with-functions-and-methods それに&**とは必ずしも等価じゃないからDeref Coercionを説明するのにはあまり勧められないかな let x = "Hello".to_string(); let y = Box::new(x); let z = &**y; //zは&strになる let z:&str = y; //これはcoerceしないのでコンパイルエラー