sig
  val neighbours_dist2 : int array array -> int array array
  module Sphere_radius_2 :
    functor (Topo : Types.Topology->
      functor (Parameters : sig  end-> Types.Topology
  module type Parameters =
    sig val prng : Random.State.t val destroy_probability : float end
  module Shuffle_neighbours :
    functor (Topo : Types.Topology->
      functor (Parameters : Parameters->
        sig
          val neighbourhoods : int array array
          val distance_to_boundary : int -> int
          val init_drawings : simulation_time:int -> unit
          val draw_configuration :
            unit -> ('-> Graphics.color) -> 'a array -> int -> unit
        end
  val remove_elements : Random.State.t -> float -> 'a list -> 'a list
  module Cut_links :
    functor (Topo : Types.Topology->
      functor (Params : Parameters->
        sig
          val neighbourhoods : int array array
          val distance_to_boundary : int -> int
          val init_drawings : simulation_time:int -> unit
          val draw_configuration :
            unit -> ('-> Graphics.color) -> 'a array -> int -> unit
          val neighbourhoods : int array array
        end
end