docs: @JRubyMethod(required = 1, optional = 1, frame = true)
      public static IRubyObject map(IRubyObject self, IRubyObject[] args, Block block) {
          Ruby runtime = self.getRuntime();
          ThreadContext ctx = runtime.getCurrentContext();
          IRubyObject type_id = args[0];
          IRubyObject style = args.length == 1 ? runtime.getNil() : args[1];
          IRubyObject map = ((RubyModule)((RubyModule)runtime.getModule("YAML")).getConstant("Yecht")).getConstant("Map").callMethod(ctx, "new", new IRubyObject[]{type_id, RubyHash.newHash(runtime), style});
          outMark((IRubyObject)((RubyObject)self).fastGetInstanceVariable("@emitter"), map);
          block.yield(ctx, map);
          return map;
      }