Index: src/work/marci/bipartite_graphs.h
===================================================================
--- src/work/marci/bipartite_graphs.h	(revision 455)
+++ src/work/marci/bipartite_graphs.h	(revision 540)
@@ -36,4 +36,25 @@
     return true;
   }
+
+  /// experimental topsort, 
+  /// I think the final version will work as an iterator
+  template<typename Graph> 
+  void topSort(Graph& g, std::list<typename Graph::Node>& l) {
+    l.clear();
+    typedef typename Graph::template NodeMap<bool> ReachedMap;
+    ReachedMap reached(g/*, false*/);
+    DfsIterator<Graph, ReachedMap> dfs(g, reached);
+    FOR_EACH_LOC(typename Graph::NodeIt, n, g) {
+      if (!reached[n]) {
+	dfs.pushAndSetReached(n);
+	while (!bfs.finished()) {
+	  if (bfs.isANodeExamined()) {
+	    l.push_back(bfs.aNode());
+	  }
+	  ++bfs;
+	}
+      }
+    }
+  }
 }
 #endif //HUGO_BIPARTITE_GRAPHS_H
Index: src/work/marci/makefile
===================================================================
--- src/work/marci/makefile	(revision 510)
+++ src/work/marci/makefile	(revision 540)
@@ -2,5 +2,5 @@
 CXX3=$(CXX)
 BOOSTROOT ?= /home/marci/boost
-INCLUDEDIRS ?= -I../../include -I.. -I../{marci,jacint,alpar,klao,akos,athos} -I$(BOOSTROOT)
+INCLUDEDIRS ?= -I../../hugo -I.. -I../{marci,jacint,alpar,klao,akos,athos} -I$(BOOSTROOT)
 
 LEDABINARIES = leda_graph_demo leda_bfs_dfs max_bipartite_matching_demo
