let next_step transition_rule configuration_in configuration_out =
(* assert (Array.length neighbourhoods = Array.length configuration_in ); *)
assert (Array.length configuration_in = Array.length configuration_out);
(* Array.iteri *)
(* (fun i neighb -> configuration_out.(i) <- transition_rule configuration_in neighb) *)
(* neighbourhoods *)
for i=0 to pred (Array.length configuration_in) do
configuration_out.(i) <- transition_rule configuration_in i
done