implement multiple alias this
strict patch
function overload with alias this
alias this and l-value