These casts are possible optional, also, `intrinsics::move_val_init(ptr, t)` is better. (Doesn't need the `forget`)