sig
  val wolfram_to_array : int -> bool array
  val array_to_wolfram : bool array -> int
  val reflexive_rule : int -> int
  val conjugate_rule : int -> int
  val transition_rule : int -> int array array -> bool array -> int -> bool
  module type Parameters =
    sig
      val rule_num : int
      val init_density : float
      val initializer_prng : Random.State.t
    end
  module Automaton : functor (Parameters : Parameters-> Types.Rule
end