public static CallSite genMH(SephObject marker) {
MutableCallSite mcs = new MutableCallSite(methodType(SephObject.class, SephObject.class, SThread.class));
MethodHandle _test = dropArguments(REF_EQ.bindTo(marker), 1, SThread.class);
MethodHandle combiner = filterReturnValue(dropArguments(THREAD_TAIL_GETTER, 0, SephObject.class), exactInvoker(methodType(SephObject.class)));
MethodHandle _then = foldArguments(dropArguments(mcs.dynamicInvoker(), 1, SephObject.class), combiner);
MethodHandle _else = dropArguments(identity(SephObject.class), 1, SThread.class);
MethodHandle pumper = guardWithTest(_test,
_then,
_else);
mcs.setTarget(pumper);