sig
  val min_no_nan : float -> float -> float
  val max_no_nan : float -> float -> float
  val mean_no_nan : float array -> float
  val mod_squared_distance : float -> float -> float -> float
  val g : int -> int -> int
  val pi : float
  module Experiment :
    functor (Topo : Types.Topology->
      functor (Synchro : Types.Synchronism->
        functor (Auto : Types.Rule->
          sig
            val configuration : Auto.configuration ref
            val tr : Auto.configuration -> int -> Auto.state
            val do_next_step : unit -> unit
            val draw_configuration : Auto.configuration -> int -> unit
            val at_first_measurement : unit -> unit
            val at_last_measurement : unit -> unit
            val do_measurement : time:'-> (int -> unit) * (int -> unit)
            val configuration : int array Pervasives.ref
            val neighbourhoods : int array array
            val length : int
            val complexities : float array
            val draw_cmplx :
              (float -> Graphics.color) -> float array -> int -> unit
            val psi_x : float array
            val psi_y : float array
            val phase : float array
            val at_first_measurement : unit -> unit
            val at_last_measurement : unit -> unit
            val do_measurement : time:'-> (int -> unit) * (int -> unit)
          end
end