Why is std::pin::Pin so weird?