}
@SuppressWarnings("unchecked")
@Override
public Object apply(Invocation in) {
@SuppressWarnings("rawtypes")
Invokable target = sync2async.apply(in).getInvokable();
Object returnVal;
try {
returnVal = target.invoke(receiver, in.getArgs().toArray());
} catch (InvocationTargetException e) {
throw propagate(e.getCause());
} catch (IllegalAccessException e) {
throw new Error("Method became inaccessible: " + toString(), e);
}