package stdune

  1. Overview
  2. Docs
Dune's unstable standard library

Install

Dune Dependency

Authors

Maintainers

Sources

dune-3.7.0.tbz
sha256=e2d637c9d080318fedf5e71d2a29fb367624f82ac4a26e83df2b3a03550528b8
sha512=586e47ee45cd53a8c13095bde0b47de99aad9462d0a52199362140b5b654ca862597fa9f27f729a8cc594684ac46858848f9fa76f8f06dc8dc8ab8b1186a3295

doc/src/stdune/state.ml.html

Source file state.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
module Make (S : sig
  type t
end)
(M : Monad.S) =
struct
  module T = struct
    type 'a t = S.t -> (S.t * 'a) M.t

    let return a s = M.return (s, a)

    let bind x ~f s =
      let open M.O in
      let* s', a = x s in
      (f a) s'
  end

  open M.O
  include T

  let lift m s = m >>| fun a -> (s, a)

  let modify f s = M.return (f s, ())

  let get : S.t T.t = fun s -> M.return (s, s)

  let set s _ = M.return (s, ())

  let run t s = t s

  include Monad.Make (T)
end
OCaml

Innovation. Community. Security.