let matrix_transpose = fun m_array_array -> fun width -> 
        let get_element = fun i -> fun array -> Array.get array i in
        let get_line = fun array_array -> fun i -> 
                Array.map (get_element i) array_array in
        let transpose array_array = Array.init width (get_line array_array) in
        transpose m_array_array