-- | Types for the general graph colorer.
+
module GraphBase (
Triv,
Graph (..),
import UniqSet
import UniqFM
+
-- | A fn to check if a node is trivially colorable
-- For graphs who's color classes are disjoint then a node is 'trivially colorable'
-- when it has less neighbors and exclusions than available colors for that node.
-- | All active nodes in the graph.
graphMap :: UniqFM (Node k cls color) }
+
-- | An empty graph.
+initGraph :: Graph k cls color
initGraph
= Graph
{ graphMap = emptyUFM }
, nodeConflicts :: UniqSet k
-- | Colors that cannot be used by this node.
- , nodeExclusions :: UniqSet color
+ , nodeExclusions :: UniqSet color
-- | Colors that this node would prefer to be, in decending order.
, nodePreference :: [color]
+