ulidtko 10.02.2012 02:29 уважением

cellAt tree point = rec (rootbox tree) (root tree)
where
rec :: (NodeStorage s) => Box2 → NodeID → s (Maybe NodeID)
rec box nid = [...] zipWithM rec [b1, b2, b3, b4] [q1, q2, q3, q4] >>= (return . msum)

Как-то мне всё ещё очень сложно изолировать существенный код от монадического бойлерплейта :\

inb4: нужно больше катаморфизмов.

Do you really want to delete ?