diff options
author | Gaëtan Gilbert <gaetan.gilbert@skyskimmer.net> | 2018-06-21 18:02:40 +0200 |
---|---|---|
committer | Gaëtan Gilbert <gaetan.gilbert@skyskimmer.net> | 2018-06-22 13:09:15 +0200 |
commit | d236c7362053c4fc8f1c7f3b59248b412b029fb8 (patch) | |
tree | b1f4186bb493a9b91a36b3a29d29b4dfef040404 /clib/cList.ml | |
parent | 0f12f2334e6c921a13e2e2186c44b7fb017714c1 (diff) |
Define and use UGraph.enforce_leq_alg for subtyping inference
Not sure if worth using in other places.
Diffstat (limited to 'clib/cList.ml')
-rw-r--r-- | clib/cList.ml | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clib/cList.ml b/clib/cList.ml index 2b627f745..de42886dc 100644 --- a/clib/cList.ml +++ b/clib/cList.ml @@ -122,6 +122,7 @@ sig val duplicates : 'a eq -> 'a list -> 'a list val uniquize : 'a list -> 'a list val sort_uniquize : 'a cmp -> 'a list -> 'a list + val min : 'a cmp -> 'a list -> 'a val cartesian : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list val cartesians : ('a -> 'b -> 'b) -> 'b -> 'a list list -> 'b list val combinations : 'a list list -> 'a list list @@ -971,6 +972,15 @@ let rec uniquize_sorted cmp = function let sort_uniquize cmp l = uniquize_sorted cmp (List.sort cmp l) +let min cmp l = + let rec aux cur = function + | [] -> cur + | x :: l -> if cmp x cur < 0 then aux x l else aux cur l + in + match l with + | x :: l -> aux x l + | [] -> raise Not_found + let rec duplicates cmp = function | [] -> [] | x :: l -> |