docs: private void generateCreateMethod(ClassVisitor cv, TypeInfo factoryType) {
      final Label start = new Label();
      final Label end = new Label();
      final LocalVariable thisVar = createThisVar(factoryType, start, end);
      final LocalVariable paramsVar = createLocal("params", 1, SOY_RECORD_TYPE, start, end);
      final LocalVariable ijVar = createLocal("ij", 2, SOY_RECORD_TYPE, start, end);
      final Statement returnTemplate =
          Statement.returnExpression(template.constructor().construct(paramsVar, ijVar));
      new Statement() {
        @Override
        protected void doGen(CodeBuilder ga) {
          ga.mark(start);
          returnTemplate.gen(ga);
          ga.mark(end);
          thisVar.tableEntry(ga);
          paramsVar.tableEntry(ga);
          ijVar.tableEntry(ga);
        }
      }.writeMethod(Opcodes.ACC_PUBLIC, CREATE_METHOD, cv);
    }