CWLOBLWQJDZL5EMPWBHK3XRT2TZZ5U5M4WGMHC65MU5YHAAUJPHAC LDXV64JUWYYYPCV6CWMGS3EFX4ZSO7TQ6X327EOQWC5Z6W75UMXQC HQZLWNTRZRDCXCXLZMTWSB7GXON4T4KJZVAU4DFST64LTXIUSBRAC 7QP2V7ZBVZ7SKQ3SYV6NYA7V77G3Y7GF5V6EPIXLIYFSMFRWR4VAC K7KUOYE2VONTDGZ6BIAGA3F7RYQEBNTY3LQOYQM4FH3MOUTLBL6AC Y2N6GDITBJID3Q4Z2Y7KEDY46F7R3SU4DRK3ST6ZMA4CNLXWSFDAC VHUL3O55RPR6QD7IXPMJFWI5EOXHQYAMHCLP2FYAULPAOAWUVQ7QC RTM5VGIPTRMJMKLJER4543HXDRMGUZ7TI5VJBOV4ZFGUCILNQ62QC JDI62ZLKN7J4572C7E2WL2HPGAMFU5YEIDOERVGIOBPOOV3DRF5AC 6QAAR2VPKVD3II6SKKLQBHRYOFX4NHA6HGJMBMFRPQCVE5OLKWJQC O7B34AE2RCSSUKPDKL6VRLOAGH3OYXD6VAI6C6KHZMA7RWUMN2MQC 6TR3H656MQ3WM3RFWZRHWATU4G5MPRR2CEVM3BAVONWMRMVNVQ4QC DPKNMYAABC2UGZ2VAU2GKRDWZSRHFG24VOJ3X57MMPFY76YXJWHAC step :: forall a. Atom a => (Memo -> (Dir -> a) -> a -> a) -> Verse a -> Verse astep f v = v { nodes = V.map (\(m,n) -> n { atom = f m (get v . neighbour n) $ atom n }) result }
step :: forall a. Atom a => ((Dir -> a) -> a -> a) -> Verse a -> Verse astep f v = v { nodes = V.map snd result }