summaryrefslogtreecommitdiffstats
path: root/lib/prelude.ml
diff options
context:
space:
mode:
authorRutger Broekhoff2025-08-26 11:16:29 +0200
committerRutger Broekhoff2025-08-26 11:16:29 +0200
commitf95748e82a354f2ac857359774ec3227705838af (patch)
treee9d8eaf5d8b1cdb3950fdd2929ec5d97e541bf03 /lib/prelude.ml
parente6873458facadea0dfb228bb33291d6baf68c427 (diff)
downloadrdcapsis-f95748e82a354f2ac857359774ec3227705838af.tar.gz
rdcapsis-f95748e82a354f2ac857359774ec3227705838af.zip
Prelude
Diffstat (limited to 'lib/prelude.ml')
-rw-r--r--lib/prelude.ml31
1 files changed, 31 insertions, 0 deletions
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 @@
1include Core
2module Time_ns = Time_ns_unix
3
4module List = struct
5 include List
6
7 let map_result ~(f : 'a -> ('b, 'c) result) : 'a list -> ('b list, 'c) result
8 =
9 let open Result.Let_syntax in
10 let rec go = function
11 | [] -> return []
12 | x :: xs ->
13 let%map x' = f x and xs' = go xs in
14 x' :: xs'
15 in
16 go
17end
18
19module Z = struct
20 include Z
21
22 let sexp_of_t x = Sexp.Atom (Z.to_string x)
23end
24
25module Result = struct
26 include Result
27
28 let unwrap = function
29 | Error _ -> failwith "Result.unwrap: unexpected (Error _)"
30 | Ok v -> v
31end