ocaml-logicm / tests_stream.ml

open Tests_common

module LogicM =
  struct
    include LogicM_stream
    let ( <+> ) a b = interleave ~chunk:100 a b
    let ifteu m th el = ifteu ~alg:`Diag m th el
  end

open LogicM

type bindr = { bind : 'a 'b . ('a -> 'b m) -> 'a m -> 'b m }

let run_test ~time ~fn testfunc =
    List.iter
      (fun (alg_name, alg) ->
         Printf.printf "%s/%s\n%!" fn alg_name;
         let () = time
           (testfunc ~bindr:{bind = fun f m -> (LogicM.bind ~alg f m)}) () in
         print_newline ()
      )
      [
        ("diag50", (`Diagn 50));
        ("deep", `Deep)
      ; ("wide", `Wide)
      ]
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.