Observe Binding::provide() returns a ImplPointer.
Observe Binding::provide() returns a ImplPointer.

Now the implicit upcast is done when constructing the smart pointer, as opposed to making the IfacePointer.

phs/sauce,phs/sauce,phs/sauce,phs/sauce