tryToMergeWithLeft = (structs, pos) => {
  const left = structs[pos - 1];
  const right = structs[pos];

  if (left.deleted === right.deleted && left.constructor === right.constructor) {
    if (left.mergeWith(right)) {
      structs.splice(pos, 1);

      if (right instanceof Item && right.parentSub !== null &&
      /** @type {AbstractType<any>} */
      right.parent._map.get(right.parentSub) === right) {
        /** @type {AbstractType<any>} */
        right.parent._map.set(right.parentSub,
        /** @type {Item} */
        left);
      }
    }
  }
}
@param {Array<AbstractStruct>} structs
@param {number} pos