structure Grid = struct type square = {r: int, g: int, b: int, a: int} type t = square vector vector val emptyPixel = {r = 0, g = 0, b = 0, a = 0} fun isBlank ({a, ...}: square) = a = 0 fun changeGridSize maxSide grid = Vector.tabulate (maxSide, fn i => if i < Vector.length grid then let val yAxis = Vector.sub (grid, i) in Vector.tabulate (maxSide, fn ii => if ii < Vector.length yAxis then Vector.sub (yAxis, ii) else emptyPixel) end else Vector.tabulate (maxSide, fn _ => emptyPixel)) end