buildAvailables :: Int -> Int -> [Edge]
buildAvailables v h = horizontal ++ vertical
  where horizontal = [((x,y),(x,y+1)) | x <- [0..v], y <- [0..(h-1)]]
        vertical = [((x,y),(x+1,y)) | x <- [0..(v-1)], y <- [0..h]]
buildAvailables :: Int -> Int -> [Edge]
buildAvailables v h = horizontal ++ vertical
  where horizontal = [((x,y),(x,y+1)) | x <- [0..v], y <- [0..(h-1)]]
        vertical = [((x,y),(x+1,y)) | x <- [0..(v-1)], y <- [0..h]]
buildAvailables v h = horizontal ++ vertical
  where horizontal = [((x,y),(x,y+1)) | x <- [0..v], y <- [0..(h-1)]]
        vertical = [((x,y),(x+1,y)) | x <- [0..(v-1)], y <- [0..h]]