aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Utilities.mli
blob: 34a03e917156fb66a96c06efd987d82aa0db819b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
module Result : sig
  val ( let* ) : ('a, 'e) result -> ('a -> ('b, 'e) result) -> ('b, 'e) result
  val fmap : ('a -> ('b, 'e) result) -> ('a, 'e) result -> ('b, 'e) result
  val sequence : ('a, 'b) result list -> ('a list, 'b) result
end

module Atomic : sig
  val swap : 'a Atomic.t -> ('a -> 'a) -> 'a Atomic.t
  (* This is silly *)
  val mswap : 'a Atomic.t -> ('a -> ('a, 'b) result) -> ('a Atomic.t, 'b) result
end