The clone should create an `~` pointer which does *not* have the same lifetime as `self`, yet you're returning it as the same lifetime.