type color = W | B type image = L of color * int | N of image * image * image * image Tree: N (L (W, 4), N (L (W, 1), L (B, 1), L (W, 1), L (B, 2)), N (L (W, 2), L (W, 2), L (W, 2), L (B, 1)), L (B, 4)) Tree to array: let tree_to_array tr n = match tr with | L(a, b) -> Array.make_matrix n n (leaf_bit a) | N(a, b, c, d) -> quad_arr_append (tree_to_array a (n/2)) (tree_to_array b (n/2)) (tree_to_array c (n/2)) (tree_to_array d (n/2))