aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Utilities.ml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/Utilities.ml1
-rw-r--r--lib/Utilities.mli1
2 files changed, 2 insertions, 0 deletions
diff --git a/lib/Utilities.ml b/lib/Utilities.ml
index b7fe364..03d1eea 100644
--- a/lib/Utilities.ml
+++ b/lib/Utilities.ml
@@ -55,6 +55,7 @@ module List = struct
include Generic (ListSequence)
+ let concat_map f xs = List.map f xs |> sequence |> Stdlib.Result.map List.concat
let hd_opt = function x :: _ -> Some x | [] -> None
end
diff --git a/lib/Utilities.mli b/lib/Utilities.mli
index 59bc1fc..fb38966 100644
--- a/lib/Utilities.mli
+++ b/lib/Utilities.mli
@@ -12,6 +12,7 @@ end
module List : sig
val sequence : ('a, 'b) result list -> ('a list, 'b) result
val fold_left : ('a -> 'b -> ('a, 'e) result) -> 'a -> 'b list -> ('a, 'e) result
+ val concat_map : ('a -> ('b list, 'e) result) -> 'a list -> ('b list, 'e) result
val hd_opt : 'a list -> 'a option
end