sig
  val transition_rule :
    Random.State.t -> float -> int array array -> int array -> int -> int
  module type Parameters =
    sig
      val init_min_state_value : int
      val init_max_state_value : int
      val grain_probability : float
      val initializer_prng : Random.State.t
      val rule_prng : Random.State.t
    end
  module Automaton : functor (Parameters : Parameters-> Types.Rule
end