1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
open Migrate_ast
module T = struct
type t = {txt: string; loc: Location.t}
let loc t = t.loc
let txt t = t.txt
let create txt loc = {txt; loc}
let compare =
Comparable.lexicographic
[ Comparable.lift String.compare ~f:txt
; Comparable.lift Location.compare ~f:loc ]
let sexp_of_t {txt; loc} =
Sexp.Atom (Format.asprintf "%s %a" txt Migrate_ast.Location.fmt loc)
end
include T
include Comparator.Make (T)
type pos = Before | Within | After