Poly.Smcval return : 'a -> 'a tmodule Infix : sig ... endval sample : 'a Dagger.Dist.t -> 'a tval samplei : 'a Dagger.Dist.t t -> 'a tval map_log_score : 'a t -> ('a -> Dagger.Log_space.t) -> 'a tval score : float -> unit tval log_score : Dagger.Log_space.t -> unit tmodule List_ops : sig ... endmodule Array_ops : sig ... endmodule Seq_ops : sig ... endtype particle_output = Smc_types.particle_outputtype resampling_state = Smc_types.resampling_stateval fork : int -> unit tval get_score : Dagger.Log_space.t tval set_score : Dagger.Log_space.t -> unit tval yield : particle_output -> resampling_state ttype !'a population = {terminated : ('a * float) array;active : (particle_output * float) array;total_mass : float;}val run : 
  (particle_output, float, resampling_state) Dagger.Resampling.strategy ->
  resampling_state ->
  npart:int ->
  'a t ->
  Dagger.RNG.t ->
  'a population Stdlib.Seq.tval run_custom : 
  (particle_output, float, resampling_state) Dagger.Resampling.strategy ->
  resampling_state ->
  npart:int ->
  (int -> 'a t) ->
  Dagger.RNG.t ->
  'a population Stdlib.Seq.t