1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
(* SPDX-License-Identifier: AGPL-3.0-or-later *)
(* Copyright © 2021-2026 OCamlPro *)
(* Written by the Owi programmers *)

let random_state =
  let init = ref false in
  fun seed ->
    if not !init then begin
      let seed = Option.value seed ~default:42 in
      Random.init seed;
      init := true
    end
    else begin
      Logs.warn (fun m ->
        m "The random state initialization function was called too many times" )
    end