package forester
Source file Compare.ml
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(* * SPDX-FileCopyrightText: 2024 The Forester Project Contributors * * SPDX-License-Identifier: GPL-3.0-or-later *) let under f compare x y = compare (f x) (f y) let cascade compare0 compare1 x y = match compare0 x y with | 0 -> compare1 x y | i -> i let option compare x y = match x, y with | None, Some _ -> -1 | Some _, None -> 1 | None, None -> 0 | Some x, Some y -> compare x y let sort_map f compare xs = List.sort compare @@ List.map f xs let invert compare x y = 0 - compare x y