I am trying to write a function that will look at the coordinates of two cells and return a boolean response if they are adjacent or not.

I am thinking that because of this:

`data Coord = Coord {xCoord, yCoord :: Integer} deriving (Ord, Eq, Show, Read) `

My function needs to take two integers and then (this is the part i need help with) check that they are neighbours. Everything I have written will break, as it also allows for two non-neighbouring cells to return a true.

Please Help. =]

-------------Problems Reply------------

I guess two coordinates are adjacent in your sense if they are not equal, and the distance in X *and* Y direction between them is at most one? If so, you could use

`adjacent :: Coord -> Coord -> Bool`

adjacent p q | p == q = False

adjacent (Coord x1 y1) (Coord x2 y2) = abs (x1 - x2) <= 1 && abs (y1 - y2) <= 1