Nitpick: You don't need to write such a trivial ctor, `Impl(r)` will work without it.