Dear friends, I think that the current state of guile is in a sad state for logic programming with prompts in guile. I really think that we should fix the most pressing issues or stop touting prompts as a way to implement logic programming and direct to kanren or guile-log instead.
Issues. 1. with a prompt based solution fluids is the natural choice to implement backtracking logical variables. But the current fluid implementation is fundamentally broken with respect to undo and redo semantics and will haunt any project that want to have interactive logic reasoning implemented. It's possible to fix it in pure guile with a horrible complex solution and will lead to laughable performance. 2. with-fluids is not tail recursive. It is quite possible that project will fail due to burnout of the stack in current guile because of this. One probably cannot get kanrens great support for tail call's implemented but at-least reduce the total memory consumption quite significantly. 3. Speed, Logic programming in pure guile is currently 100x slower then than with e.g. gprolog. It can be imporved to 20x by using a C-based backend. It's possible to get down to 4x (with prompts) if we could have a fast C-call mechansim or support in the VM. 4. This is a less important issue. But in order to implement all logic constructs found in kanren with prompts you will need to be able to use a special-variables construct that i'm touting which is needed if one want to be able to undo and redo things. Regards Stefan