@Dennis Sorry for the barrage of questions but I have another. What do you think of an atom that gives the (von Neumann) neighborhood of an element in a grid? One way this could work is that it is a monad that takes a rectangular list of lists and returns a list of the same size but each element is replaced by a list of it's neighborhood
e.g. [[1,2],[3,4]]<atom> -> [[[2,3],[1,4]],[[1,4],[2,3]]]