let transition_rule rule =
(* let table = Femtolib.Array.matrix_of_list_list rule in *)
let table = Femtolib.Array.matrix_of_list_list rule |> Array.map (Array.map bool_of_int) in
fun neighbours configuration cell ->
let n = neighbours.(cell) in
let sum_of_neighbours =
(* Array.fold_left (fun accu neighbour -> accu + configuration.(neighbour)) 0 n in *)
Array.fold_left (fun accu neighbour -> accu + int_of_bool configuration.(neighbour)) 0 n in
(* let current_state = configuration.(cell) in *)
let current_state = int_of_bool configuration.(cell) in
table.(current_state).(sum_of_neighbours)