sig
module type Key =
sig
type t
type floatable = t
val of_float : float -> floatable
val to_float : floatable -> float
type sexpable = t
val sexp_of_t : sexpable -> Sexplib.Sexp.t
val t_of_sexp : Sexplib.Sexp.t -> sexpable
end
module type S =
sig
type key
type t
type sexpable = t
val sexp_of_t : sexpable -> Sexplib.Sexp.t
val t_of_sexp : Sexplib.Sexp.t -> sexpable
val create :
(Piecewise_linear.S.key * float) list ->
[ `Fail of string | `Succeed of Piecewise_linear.S.t ]
val get : Piecewise_linear.S.t -> Piecewise_linear.S.key -> float
end
module Make :
functor (Key : Key) ->
sig
type key = Key.t
type t
type sexpable = t
val sexp_of_t : sexpable -> Sexplib.Sexp.t
val t_of_sexp : Sexplib.Sexp.t -> sexpable
val create :
(key * float) list -> [ `Fail of string | `Succeed of t ]
val get : t -> key -> float
end
module Time :
sig
type key = Time.t
type t
type sexpable = t
val sexp_of_t : sexpable -> Sexplib.Sexp.t
val t_of_sexp : Sexplib.Sexp.t -> sexpable
val create : (key * float) list -> [ `Fail of string | `Succeed of t ]
val get : t -> key -> float
end
module Float :
sig
type key = float
type t
type sexpable = t
val sexp_of_t : sexpable -> Sexplib.Sexp.t
val t_of_sexp : Sexplib.Sexp.t -> sexpable
val create : (key * float) list -> [ `Fail of string | `Succeed of t ]
val get : t -> key -> float
end
module Int :
sig
type key = int
type t
type sexpable = t
val sexp_of_t : sexpable -> Sexplib.Sexp.t
val t_of_sexp : Sexplib.Sexp.t -> sexpable
val create : (key * float) list -> [ `Fail of string | `Succeed of t ]
val get : t -> key -> float
end
end