docs: public void remove(final AbstractInsnNode insn) {
          --size;
          AbstractInsnNode next = insn.next;
          AbstractInsnNode prev = insn.prev;
          if (next == null) {
              if (prev == null) {
                  first = null;
                  last = null;
              } else {
                  prev.next = null;
                  last = prev;
              }
          } else {
              if (prev == null) {
                  first = next;
                  next.prev = null;
              } else {
                  prev.next = next;
                  next.prev = prev;
              }
          }
          cache = null;
          insn.index = -1; // insn no longer belongs to an InsnList
          insn.prev = null;
          insn.next = null;
      }