greedyIndSets :: ArrayGraph -> [[Int]]
greedyIndSets (ArrayGraph graph sg) = gis sg
  where
    f sg x = map (x :) (gis (updateSubgraph graph sg x))
    gis (Subgraph _ ds) =     
      case minDegs ds of
        [] -> [[]]
        xs -> concatMap (f sg) xs
greedyIndSets :: ArrayGraph -> [[Int]]
greedyIndSets (ArrayGraph graph sg) = gis sg
  where
    f sg x = map (x :) (gis (updateSubgraph graph sg x))
    gis (Subgraph _ ds) =     
      case minDegs ds of
        [] -> [[]]
        xs -> concatMap (f sg) xs
greedyIndSets (ArrayGraph graph sg) = gis sg
  where
    f sg x = map (x :) (gis (updateSubgraph graph sg x))
    gis (Subgraph _ ds) =     
      case minDegs ds of
        [] -> [[]]
        xs -> concatMap (f sg) xs