pub trait NormalOutPromote<RHS = Self> { type Output; }
this trait is used to perform type promotion for normal out operations
the output type