I've opened What do we need to get the same functionality without `generic_const_exprs`? that elaborates the question. There is real unsafe implemention, but it requires feature generic_const_expressions. I would really appreciate if you have a knowledge on how to make it "just using unsafe". Especially for unnamable types, like futures - not just store Foo<'static> and unsafely write Foo<'a>, because you cannot rewrite lifetimes of unnamable type - maximum it just get it with TAIT feature