step1 :: Map Point Seat -> Map Point Seat
step1 l = M.mapWithKey (rule 4 adj) l
  where adj xy = mapMaybe ((l M.!?) . (+ xy)) neighbors
step1 :: Map Point Seat -> Map Point Seat
step1 l = M.mapWithKey (rule 4 adj) l
  where adj xy = mapMaybe ((l M.!?) . (+ xy)) neighbors
step1 l = M.mapWithKey (rule 4 adj) l
  where adj xy = mapMaybe ((l M.!?) . (+ xy)) neighbors