Мне кажется, что проблема именно в представлении графа.
Если он будет таким
*Main> testGraph
fromList [(1,[6,8]),(6,[9,10,13]),(8,[13]),(9,[]),(10,[]),(13,[])]
То всё работает
Окей, я понял, спасибо.
А если у меня задан граф списком ребёр, то как мне его превратить в такую мапу как здесь.
fromEdges :: [(Node, Node)] -> Graph
fromEdges = M.fromListWith (++) . map (fmap (:[]))
Была попытка сделать вот так, но здесь вершины без childs не добавляются, то есть
если граф [(1, 2)], то будет [(1, [2])], а нужно [(1, [2]), (2, [])].