@@ -23,6 +23,7 @@ import qualified Data.Set as Set
2323data Node = Node
2424 { _nodeDerivation :: Derivation
2525 , _nodeTestDepends :: Set.Set String
26+ , _nodeBenchmarkDepends :: Set.Set String
2627 , _nodeOtherDepends :: Set.Set String }
2728
2829makeLenses ''Node
@@ -34,17 +35,21 @@ mkNode _nodeDerivation = Node{..}
3435 . Set.filter isFromHackage
3536 $ view (s . (haskell <> tool)) _nodeDerivation
3637 _nodeTestDepends = haskellDependencies testDepends
38+ _nodeBenchmarkDepends = haskellDependencies benchmarkDepends
3739 _nodeOtherDepends = haskellDependencies (executableDepends <> libraryDepends)
3840
3941nodeName :: Node -> String
4042nodeName = unPackageName . packageName . view (nodeDerivation . pkgid)
4143
44+nodeCycleDepends :: Node -> Set.Set String
45+nodeCycleDepends = _nodeTestDepends <> _nodeOtherDepends
46+
4247nodeDepends :: Node -> Set.Set String
43−nodeDepends = _nodeTestDepends <> _nodeOtherDepends
48+nodeDepends = _nodeTestDepends <> _nodeOtherDepends <> _nodeBenchmarkDepends
4449
4550findCycles :: [Node] -> [[Node]]
4651findCycles nodes = mapMaybe cyclic $
47− Graph.stronglyConnComp [(node, nodeName node, Set.toList $ nodeDepends node) | node <- nodes]
52+ Graph.stronglyConnComp [(node, nodeName node, Set.toList $ nodeCycleDepends node) | node <- nodes]
4853 where
4954 cyclic (Graph.AcyclicSCC _) = Nothing
5055 cyclic (Graph.CyclicSCC c) = Just c