Use alias this if you want implicit conversions too.
Proxy keeps the types separate
void foo(Base b) { }
struct Modified {
Base b;
alias b this;
}
foo(Modified()); //works
That wouldn't work if it was proxied though, which you sometimes
want to force everything to go through your modification.