function tryReachUntil(element, char, until) {
              if (!element || element == until || char.isEmpty) {
                return char;
              }

              const after = getAfter(element);

              if (element.type === "Quantifier") {
                assertNoPoly(element, char);
              }

              return tryReachUntil(after, goInto(element, after, char), until);
            }
@param {Element | null | undefined} element
@param {CharSet} char
@param {Element | null | undefined} until
@returns {CharSet}