diff --git a/Data/Graph/Libgraph.hs b/Data/Graph/Libgraph.hs
--- a/Data/Graph/Libgraph.hs
+++ b/Data/Graph/Libgraph.hs
@@ -24,6 +24,7 @@
 , dagify
 , findFaulty
 , findFaulty_dag
+, next_step
 , Judgement(..)
 , showWith
 , escape
diff --git a/Data/Graph/Libgraph/AlgoDebug.hs b/Data/Graph/Libgraph/AlgoDebug.hs
--- a/Data/Graph/Libgraph/AlgoDebug.hs
+++ b/Data/Graph/Libgraph/AlgoDebug.hs
@@ -3,7 +3,7 @@
 import Data.Graph.Libgraph.Dagify(collapse,remove)
 import Prelude hiding (Right)
 
-data Judgement = Right | Wrong | Unassessed deriving (Eq,Show,Ord)
+data Judgement = Right | Wrong | Unassessed | Assisted String deriving (Eq,Show,Ord)
 
 findFaulty_dag :: (Ord v, Eq a, Show v) => (v -> Judgement) -> Graph v a -> [v]
 findFaulty_dag judge g = filter isFaulty (vertices g)
@@ -13,3 +13,18 @@
 findFaulty :: (Ord v, Eq a, Show v) 
            => (v -> Judgement) -> ([v]->v) -> Graph v a -> [v]
 findFaulty isWrong merge = (findFaulty_dag isWrong) . (collapse merge) . remove
+
+
+next_step :: Eq v => Graph v a -> (v -> Judgement) -> v -> v
+next_step tree j v = case j v of
+  Unassessed -> v
+  Right      -> case preds tree v of
+                  []    -> v
+                  (w:_) -> next_step tree j w
+  Wrong      -> case filter (\w -> j w == Unassessed) (succs tree v) of
+                  []    -> v
+                  (w:_) -> w
+
+
+
+
diff --git a/libgraph.cabal b/libgraph.cabal
--- a/libgraph.cabal
+++ b/libgraph.cabal
@@ -1,6 +1,6 @@
 Name:           libgraph
-Version:        1.5
-Homepage:      http://maartenfaddegon.nl
+Version:        1.6
+Homepage:       http://maartenfaddegon.nl
 Synopsis:       Store and manipulate data in a graph.
 Description:    A graph type, analysis of graphs and manipulation of graphs.
 License:        BSD3
