The standard library Typelocked_Rw_Matrix api defines an interface mutable matrices specialized to a particular type.
The Typelocked_Rw_Matrix api is implemented by the rw_matrix_of_one_byte_unts package.rw_matrix_of_eight_byte_floats package.
The Typelocked_Rw_Matrix api source code is in src/lib/std/src/typelocked-rw-matrix.api. The above information is manually maintained and may contain errors.
api { eqtype Rw_Matrix; Element; Vector; Region = {col:Int, cols:Null_Or(Int ), row:Int, rows:Null_Or(Int ), rw_matrix:Rw_Matrix}; make_rw_matrix : (((Int , Int)) , Element) -> Rw_Matrix; from_list : (Int , Int) -> List(Element ) -> Rw_Matrix; from_lists : List(List(Element ) ) -> Rw_Matrix; from_fn : (((Int , Int)) , ((Int , Int) -> Element)) -> Rw_Matrix; get : (Rw_Matrix , ((Int , Int))) -> Element; _[] : (Rw_Matrix , ((Int , Int))) -> Element; set : (Rw_Matrix , ((Int , Int)) , Element) -> Void; _[]:= : (Rw_Matrix , ((Int , Int)) , Element) -> Void; rowscols : Rw_Matrix -> (Int , Int); cols : Rw_Matrix -> Int; rows : Rw_Matrix -> Int; row : (Rw_Matrix , Int) -> Vector; col : (Rw_Matrix , Int) -> Vector; copy_region : {region:Region, to:Rw_Matrix, to_col:Int, to_row:Int} -> Void; apply : (Element -> Void) -> Rw_Matrix -> Void; region_apply : ((Int , Int , Element) -> Void) -> Region -> Void; map_in_place : (Element -> Element) -> Rw_Matrix -> Void; region_map_in_place : ((Int , Int , Element) -> Element) -> Region -> Void; fold_forward : ((Element , X) -> X) -> X -> Rw_Matrix -> X; region_fold_forward : ((Int , Int , Element , X) -> X) -> X -> Region -> X;};