Return Type Covariance
Covariant result version of the base example static type checking.
Covariant smart pointer result automated cleanup.
Base example without covariant returns shows why theyre desirable