From f95748e82a354f2ac857359774ec3227705838af Mon Sep 17 00:00:00 2001 From: Rutger Broekhoff Date: Tue, 26 Aug 2025 11:16:29 +0200 Subject: Prelude --- lib/prelude.ml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 lib/prelude.ml (limited to 'lib/prelude.ml') diff --git a/lib/prelude.ml b/lib/prelude.ml new file mode 100644 index 0000000..57f7af3 --- /dev/null +++ b/lib/prelude.ml @@ -0,0 +1,31 @@ +include Core +module Time_ns = Time_ns_unix + +module List = struct + include List + + let map_result ~(f : 'a -> ('b, 'c) result) : 'a list -> ('b list, 'c) result + = + let open Result.Let_syntax in + let rec go = function + | [] -> return [] + | x :: xs -> + let%map x' = f x and xs' = go xs in + x' :: xs' + in + go +end + +module Z = struct + include Z + + let sexp_of_t x = Sexp.Atom (Z.to_string x) +end + +module Result = struct + include Result + + let unwrap = function + | Error _ -> failwith "Result.unwrap: unexpected (Error _)" + | Ok v -> v +end -- cgit v1.2.3