package incremental

  1. Overview
  2. Docs

An 'a Step_function.t is a function from Time_ns.t to 'a.

type 'a t
val sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.Sexp.t
include Core.Invariant.S1 with type 'a t := 'a t
val invariant : ('a -> unit) -> 'a t -> unit
val init : 'a t -> 'a
val steps : 'a t -> (Core.Time_ns.t * 'a) Core.Sequence.t
val value : 'a t -> at:Core.Time_ns.t -> 'a
val constant : 'a -> 'a t

constant a is the step function t with value t ~at = a for all at.

val create_exn : init:'a -> steps:(Core.Time_ns.t * 'a) list -> 'a t

create_exn ~init ~steps:[(t_1, v_1); ...; (t_n, vn)] is the step function t with value t ~at = init for at < t_1, value t ~at = vi for t_i <= at < t_i+1. create_exn raises if the times aren't in nondecreasing order, i.e. if for some i < j, ti > tj.

val create_from_sequence : init:'a -> steps:(Core.Time_ns.t * 'a) Core.Sequence.t -> 'a t