But wait, there's more! For Optional Noncopyable types, the "unwrap-then-nullify" requires more ceremony b/c if-let consumes the optional var, and you must prove to the compiler that you've reassigned the optional var in all branches. This isn't needed with take() which reassigns to nil internally.