module Patience_diff:sig..end
This copyright notice was included:
    # Copyright (C) 2005 Bram Cohen, Copyright (C) 2005, 2006 Canonical Ltd
    #
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 2 of the License, or
    # (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program; if not, write to the Free Software
    # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
module Matching_block:sig..end
val get_matching_blocks : transform:('a -> 'b) ->
       compare:('b -> 'b -> int) ->
       mine:'a array -> other:'a array -> Matching_block.t listval ratio : 'a array -> 'a array -> floatmodule Range:sig..end
module Hunk:sig..end
Same
    context before and after New, Old, and Replace ranges.
val get_hunks : transform:('a -> 'b) ->
       compare:('b -> 'b -> int) ->
       context:int ->
       mine:'a array -> other:'a array -> 'a Hunk.t listget_hunks a b ~context ~compare will compare the arrays a and b using
    compare and produce a list of hunks. (The hunks will contain Same ranges
    of at most context elements.)  context defaults to infinity (producing a
    singleton hunk list), compare defaults to polymorphic compare.val print_ranges : string Hunk.t -> unitval all_same : 'a Hunk.t list -> boolget_status hunks returns `Same if each hunk in hunks has only Same ranges.val unified : 'a Hunk.t list -> 'a Hunk.t listunified hunks converts all Replace ranges in hunks to an Old range
    followed by a New range.val old_only : 'a Hunk.t list -> 'a Hunk.t listold_only hunks drops all New ranges from hunks and converts all Replace
    ranges to Old ranges.val new_only : 'a Hunk.t list -> 'a Hunk.t listnew_only hunks drops all Old ranges from hunks and converts all Replace
    ranges to New ranges.val ranges : 'a Hunk.t list -> 'a Range.t listranges hunks concatenates all the ranges of all hunks together *type 'a segment = | | | Same of  | 
| | | Different of  | 
type'amerged_array ='a segment list
val merge : 'a array array -> 'a merged_array