Advice on implementing Dijkstra's algorithm

If it helps, I have the skeleton for a “blob” that wraps a C++ “map” (updateable red-black tree). It shouldn’t be difficult to modify this to have a backtrackable update, if that’s useful.

(I’ve run into a subtle bug with the blob API, which I’m in the process of writing up; but I don’t think that this would affect anyone using blobs to wrap C or C++ functionality)

BTW, Richard O’Keefe implemented Fast Fourier Transforms using ordinary Prolog data structures, and with reasonable efficiency: Learning to implement data structures & algorithms in Prolog - #4 by peter.ludemann