sig
  val metropolis : Random.State.t -> float -> bool
  val barker : float -> float
  val transition_rule :
    float -> Random.State.t -> int array array -> bool array -> int -> bool
  val transition_rule_4bodies :
    float -> Random.State.t -> int array array -> bool array -> int -> bool
  val transition_rule_4bodies_optimized :
    float -> Random.State.t -> int array array -> bool array -> int -> bool
  module type Parameters =
    sig
      val init_density : float
      val initializer_prng : Random.State.t
      val rule_prng : Random.State.t
      val beta : float
    end
  module Automaton :
    functor (Parameters : Parameters->
      sig
        val name : string
        type state = bool
        type configuration = state array
        val states : state array
        val initialize : int -> configuration
        val transition_rule :
          int array array -> configuration -> int -> state
        val color_of_state : state -> Graphics.color
      end
  module Four_bodies : functor (Parameters : Parameters-> Types.Rule
  module Four_bodies_optimized :
    functor (Parameters : Parameters-> Types.Rule
end