public boolean differsOnlyByPatch(Sequence that) {
		int size = this.steps.size();
		if (size == that.steps.size()) {
			if (size == 0) {
				return true;
			}
			if (!this.steps.subList(0, size - 1).equals(that.steps.subList(0, size - 1))) {
				return false;
			}
			Step thisLast = this.steps.getLast();
			Step thatLast = that.steps.getLast();
			return thisLast.equals(thatLast) ||
				thisLast instanceof PatchStep && thatLast instanceof PatchStep;
		}
		if (size == that.steps.size() - 1) {
			Step thatLast = that.steps.getLast();
			return thatLast instanceof PatchStep;
		}
		return false;
	}
Check if the first instruction step is actually to finish an incomplete instruction.

@param thread the thread whose instruction to potentially finish
@param machine a machine bound to the trace whose current state reflects the given position
@return if a finish was performed, this sequence with one initial step removed, i.e., a
        sequence representing the steps remaining
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/model/time/schedule/Sequence.java