# Module `Patience_diff.Hunk`

In diff terms, a hunk is a unit of consecutive ranges with some `Same`

context before and after `Next`

, `Prev`

, and `Replace`

ranges. Each hunk contains information about the original arrays, specifically the starting indexes and the number of elements in both arrays to which the hunk refers.

Furthermore, a diff is essentially a list of hunks. The simplest case is a diff with infinite context, consisting of exactly one hunk.

`type 'a t`

`=`

`{`

`prev_start : int;`

`prev_size : int;`

`next_start : int;`

`next_size : int;`

`ranges : 'a Range.t list;`

`}`

`val ranges : 'a t -> 'a Range.t list`

`val next_size : 'a t -> int`

`val next_start : 'a t -> int`

`val prev_size : 'a t -> int`

`val prev_start : 'a t -> int`

`module Fields : sig ... end`

`val sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a t -> Ppx_sexp_conv_lib.Sexp.t`

`val all_same : 'a t -> bool`

`all_same t`

returns true if`t`

contains only Same ranges.

`module Stable : sig ... end`