sig
  module Experiment :
    functor (Topo : Types.Topology->
      functor (Synchro : Types.Synchronism->
        functor (Auto : Types.Rule->
          sig
            val pof_depth : int
            val past_configurations : Auto.state array array
            val pof_configurations : Auto.state array array
            val tr : Auto.configuration -> int -> Auto.state
            val do_next_step : unit -> unit
            val discard_cell : int -> bool
            val draw_cmplx :
              (int -> Graphics.color) -> int array -> int -> unit
            val causal_states :
              Auto.state array array ->
              Auto.state array array -> int array * int array
            val total_occurences : float
            val at_first_measurement : unit -> unit
            val at_last_measurement : unit -> unit
            val do_measurement : time:'-> (int -> unit) * (int -> unit)
          end
end