Make.Langval return : 'a -> 'a treturn x injects a value x as a computation
If-then-else, mostly useful for monads featuring incremental computation. Allows to efficiently bind on a boolean computation.
module Infix : Dagger.Intf.Infix with type 'a t := 'a tval sample : 'a Dagger.Dist.t -> 'a tsample dist builds a computation that samples from dist. Note that dist must be a pure computation.
val samplei : 'a Dagger.Dist.t t -> 'a tsamplei dist is similar to sample except that dist can be an impure computation (ie computing the distribution can involve sampling from other distributions).
map_score m f behaves similarly to m except that the associated computation will be reweighted according to the result of evaluating f on the value of m.
val map_log_score : 'a t -> ('a -> Dagger.Log_space.t) -> 'a tSame as map_score excepts that a log-space likelihood is expected.
val score : float -> unit tscore s reweights the computation by s.
val log_score : Dagger.Log_space.t -> unit tlog_score behaves as score except that a log-space weight is expected.
module List_ops :
Dagger.Intf.Foldable with type 'a t = 'a list and type 'a m := 'a tmodule Array_ops :
Dagger.Intf.Foldable with type 'a t = 'a array and type 'a m := 'a tmodule Seq_ops :
Dagger.Intf.Foldable with type 'a t = 'a Stdlib.Seq.t and type 'a m := 'a t