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)