(s : String.Slice) →
  (motive :
      Std.IterStep (Std.IterM Id (String.Slice.Pattern.SearchStep s)) (String.Slice.Pattern.SearchStep s) → Sort u_1) →
    (x : Std.IterStep (Std.IterM Id (String.Slice.Pattern.SearchStep s)) (String.Slice.Pattern.SearchStep s)) →
      ((it' : Std.IterM Id (String.Slice.Pattern.SearchStep s)) →
          (out : String.Slice.Pattern.SearchStep s) → motive (Std.IterStep.yield it' out)) →
        ((it' : Std.IterM Id (String.Slice.Pattern.SearchStep s)) → motive (Std.IterStep.skip it')) →
          (Unit → motive Std.IterStep.done) → motive x