Module Mavryk_benchmark_002_PtBoreas.Micheline_sampler

Micheline sampling.

type width_function = depth:int -> int Mavryk_benchmark.Base_samplers.sampler

A width_function specifies the distribution of node degree as a function of depth. A width_function must be supported by the nonnegative integers.

Note that picking a width_function which doesn't converge fast enough to the singular distribution on 0 could yield very large terms.

val reasonable_width_function : width_function

reasonable_width_function is a width function which works well empirically.

module type Base_samplers = sig ... end

Base_samplers specifies samplers for leaves, primitives and annotations.

module type S = sig ... end

Applying the Make functor below yields a module with the following type.

module Make (P : Base_samplers) : S with type prim = P.prim

Make instantiates a micheline sampler.