I need a way to receive the original return value of the underlying method, and then either keep that return value, mutate it, or replace it entirely with a different value.
Something to the effect of this:.
MethodInfo myMethod;
var plug = Nasal.InstanceMethod<MyReturn>(myMethod)
.ReturnWrapped((object instance, MyReturn originalReturn, MyParam p1, MyParam p2) =>
{
// Do stuff, and either return `originalReturn` or some other value
return ...
});