pub fn insert(&mut self, value: T) {
// 중략
match *target {
None => *target = Some(Box::new(Tree::new(value))),
Some(ref mut sub) => sub.insert(value),
}
}

이거 꼬리재귀 맞지? while로 안 해도 스택 오버플로 안 일어나지?