Haskell fgl中的简单图(没有平行边)?

Haskell fgl中的简单图(没有平行边)?,haskell,Haskell,中是否有处理简单图形(即没有平行边)的规定?目前,我们得到了 import Data.Graph.Inductive mkGraph [(1,()),(2,())] [(1,2,()),(1,2,())] :: Gr () () ==> mkGraph [(1,()),(2,())] [(1,2,()),(1,2,())] 包含从1到2的两条边。事实上,对于这个图表 suc g 1 ==> [2,2] 只是为了表明我做了一些研究:官方文档(从原始网页链接的纸张)在第2.1

中是否有处理简单图形(即没有平行边)的规定?目前,我们得到了

import Data.Graph.Inductive
mkGraph [(1,()),(2,())] [(1,2,()),(1,2,())] :: Gr () ()

==>  mkGraph [(1,()),(2,())] [(1,2,()),(1,2,())]
包含从1到2的两条边。事实上,对于这个图表

suc g 1  ==>  [2,2]
只是为了表明我做了一些研究:官方文档(从原始网页链接的纸张)在第2.1节中说明“我们为有向、节点标记、边标记的多重图定义了一种类型;其他图形类型可以作为特例获得”,但我看到的只是琐碎的专门化(无标签=标签()),但是在简单的图上什么都没有

对于简单图,出现在
上下文a b
中的
Adj b
的类型可能应该是
Set(b,Node)
,而不是现在的
[(b,Node)]
。 (甚至
映射b(集合节点)
,或
映射节点(集合b)
…)

有点相关:是否有一种方法允许检查边的存在,或者给我从一个节点
p
到另一个节点
q
的边集?目前,我似乎必须通过遍历
sucgp
找到
q
。这是一张清单,让我更担心。如果我的图有大度数的节点怎么办