package forester

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file Loop_detection_effect.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
(*
 * SPDX-FileCopyrightText: 2024 The Forester Project Contributors
 *
 * SPDX-License-Identifier: GPL-3.0-or-later
 *)

open Forester_core

module Make () = struct
  open Algaeff.Reader.Make(struct type t = URI.Set.t end)
  let add_seen_uri uri =
    scope @@ URI.Set.add uri

  let add_seen_uri_opt uri_opt kont =
    match uri_opt with
    | None -> kont ()
    | Some uri -> add_seen_uri uri kont

  let have_seen_uri uri =
    URI.Set.mem uri @@ read ()

  let have_seen_uri_opt uri_opt =
    match uri_opt with
    | None -> false
    | Some uri -> have_seen_uri uri

  let run k = run ~env: URI.Set.empty k
end
OCaml

Innovation. Community. Security.