+let cmd_square ~separator ~csv ~chan () =
+ let csv = square csv in
+ save_out ~separator chan csv
+
+let cmd_sub ~separator ~csv ~chan args =
+ let r, c, rows, cols =
+ match args with
+ | [ r; c; rows; cols ] ->
+ int_of_string r, int_of_string c,
+ int_of_string rows, int_of_string cols
+ | _ ->
+ failwith "unknown arguments to 'sub' command" in
+ let csv = sub r c rows cols csv in
+ save_out ~separator chan csv
+