Returning a list of every possible coordinate in a grid of that width and height
You could do that using a list comprehension.
[ (x,y) | x <- [0..1], y <- [0..2] ]
Will give the list in your example.
Your function would then need to be defined as:
type GridCoord = (Int, Int)
allCoords :: Int -> Int -> [GridCoord]
allCoords height width = [ (x,y) | x <- [0..width-1], y <- [0..height-1] ]
The range
function does that.
import Data.Ix
allCoords h w = range ((0,0), (w,h))