∀ {ρ : Type} {s : String.Slice} (pat : ρ) [inst : String.Slice.Pattern.BackwardPattern pat] (pos : s.Pos),
  String.Slice.Pos.revSkipWhile._unary pat pos =
    match String.Slice.Pattern.BackwardPattern.skipSuffix? pat (s.sliceTo pos) with
    | some nextCurr =>
      if String.Slice.Pos.ofSliceTo nextCurr < pos then
        String.Slice.Pos.revSkipWhile._unary pat (String.Slice.Pos.ofSliceTo nextCurr)
      else pos
    | x => pos