{-# OPTIONS_GHC -Wall #-} ----------------------------------------------------------------------------- -- | -- Module : ToySolver.Combinatorial.HittingSet.Util -- Copyright : (c) Masahiro Sakai 2012-2014 -- License : BSD-style -- -- Maintainer : masahiro.sakai@gmail.com -- Stability : provisional -- Portability : portable -- ----------------------------------------------------------------------------- module ToySolver.Combinatorial.HittingSet.Util ( maintainNoSupersets ) where import Data.IntSet (IntSet) import qualified Data.IntSet as IntSet maintainNoSupersets :: [IntSet] -> [IntSet] maintainNoSupersets xss = go [] xss where go yss [] = yss go yss (xs:xss) = go (xs : filter p yss) (filter p xss) where p zs = not (xs `IntSet.isSubsetOf` zs)