'...
dim foo as new foo(of tconcretelhs, tconcreterhs)
foo.callback = callback
dim callbackthunk as dispatchcallback = new dispatchcallback(addressof foo.bar)
'...
private class foo(of tconcretelhs as tlhs, tconcreterhs as trhs)
public callback as dispatchcallback(of tconcretelhs, tconcreterhs)
public function bar(lhs as tlhs, rhs as trhs) as treturn
return callback(directcast(lhs, tconcretelhs), directcast(rhs, tconcreterhs))
end function
end class