Miscellany
public text v1 · immutableadjacency :: (Int8, Int8) -> [(Int8, Int8)]
adjacency (x, y) = reverse $ do
xo <- [-1, 1]
yo <- [-1, 1]
(xm, ym) <- [(1, 2), (2, 1)]
let rx = x + xo * xm
let ry = y + yo * ym
guard $ all id [rx >= 0, ry >= 0, ry < 8, rx < 8]
return (rx, ry)