Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
seq_utils_.ml1 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 29let zero_to_n_exc n : int Seq.t = let rec aux cur n = if cur < n then fun () -> Seq.Cons (cur, aux (cur + 1) n) else Seq.empty in aux 0 n let zero_to_n_inc n = zero_to_n_exc (n + 1) let mapi (f : int -> 'a -> 'b) (s : 'a Seq.t) : 'b Seq.t = let rec aux f cur s = match s () with | Seq.Nil -> Seq.empty | Seq.Cons (x, rest) -> fun () -> Seq.Cons (f cur x, aux f (succ cur) rest) in aux f 0 s (* Copied from Fmt *) let iter ?sep:(pp_sep = Format.pp_print_cut) iter pp_elt ppf v = let is_first = ref true in let pp_elt v = if !is_first then (is_first := false) else pp_sep ppf (); pp_elt ppf v in iter pp_elt v let pp ?sep pp_elt = iter ?sep Seq.iter pp_elt