∀ {α : Type u_1} [inst : Lean.Meta.Grind.HasAnchor α] (es : Array α) (numDigits : ℕ),
  Lean.Meta.Grind.getNumDigitsForAnchors.go✝ es numDigits =
    (if 4 * numDigits < 64 then
        have shift := 64 - 4 * numDigits;
        have found := ∅;
        do
        let __s ←
          forIn es (none, found) fun e __s =>
              have found := __s.2;
              have a := Lean.Meta.Grind.HasAnchor.getAnchor e;
              have a' := a >>> shift.toUInt64;
              if found.contains a' = true then do
                let __do_lift ← Lean.Meta.Grind.getNumDigitsForAnchors.go✝ es (numDigits + 1)
                pure (ForInStep.done (some __do_lift, found))
              else
                have found := found.insert a';
                pure (ForInStep.yield (none, found))
        have __r : Option ℕ := __s.1
        match __r with
          | some r => pure r
          | none => pure numDigits
      else pure numDigits).run