@JRubyMethod(name = "define_method", frame = true, visibility = PRIVATE, reads = VISIBILITY)
public IRubyObject define_method(ThreadContext context, IRubyObject arg0, Block block) {
Ruby runtime = context.getRuntime();
String name = arg0.asJavaString().intern();
DynamicMethod newMethod = null;
Visibility visibility = context.getCurrentVisibility();
if (visibility == MODULE_FUNCTION) visibility = PRIVATE;
RubyProc proc = runtime.newProc(Block.Type.LAMBDA, block);
// a normal block passed to define_method changes to do arity checking; make it a lambda