what if instead of using assignment, we were to go the opposite direction and say that we can return an instance of Self? from a failable init, and that would be the same as conditionally assigning to self?
extension SpecializedType:LosslessStringConvertible
{
public
init?(_ description:__shared String)
{
return GenericImpl<T>.init(description).map(Self.init(value:))
}
}