public static function toposort(Digraph $graph, $start = NULL) {
        $visitor = new DepthFirstToposortVisitor();
        self::traverse($graph, $visitor, $start);

        return $visitor->getTsl();
    }