ghost_lite::ghost! { #![derive(Clone, Copy, Default, Hash, PartialOrd, Ord, PartialEq, Eq, Debug)] struct MyPhantomData } #[test] fn test() { struct Test; fn test() -> impl Clone + Copy + Default + ::core::hash::Hash + PartialOrd + Ord + PartialEq + Eq + ::core::fmt::Debug { MyPhantomData:: } let _ = test; } ghost_lite::ghost! { #![mod_value_namespace = unsized_impl] #![derive(Clone, Copy, Default, Hash, PartialOrd, Ord, PartialEq, Eq, Debug)] struct MyPhantomDataUnsized } #[test] fn test_unsized() { fn test() -> impl Clone + Copy + Default + ::core::hash::Hash + PartialOrd + Ord + PartialEq + Eq + ::core::fmt::Debug { MyPhantomDataUnsized:: } let _ = test; }