A negative implementation is one that excludes a type from implementing a particular trait. Not being able to use a trait is always a safe operation, so negative implementations are always safe and never need to be marked as unsafe. ```compile_fail #![feature(optin_builtin_traits)] struct Foo; // unsafe is unnecessary unsafe impl !Clone for Foo { } ``` This will compile: ```ignore (ignore auto_trait future compatibility warning) #![feature(optin_builtin_traits)] struct Foo; auto trait Enterprise {} impl !Enterprise for Foo { } ``` Please note that negative impls are only allowed for auto traits.