I was looking to build a Prolog-ish logic-programming layer on top of Cells, and looking at how to do this, it looks like basic support could be added to Cells itself pretty easily. Here's what I'm thinking. We add a new type of Cell, let's call it a Generator. Data propogation proceeds as usual, but when we get to a Generator, we mark this on a stack. If evaluation of some formula calls FAIL, we go back to the last Generator, evaluate it again, and resume data propogation from there. Any pending inputs from code that was backtracked over would of course be thrown out.
Any thoughts? It's a holiday here on thursday, so I'm thinking about hacking on this then.