-----------------------------------------------------------------------------
-- | iven an itemset of length l, returns a set of itemsets of length (l - 1)
--                                       that are subsets of the original one.
allSubsetsOneShorter :: (Itemset set it) => set it -> [set it]
allSubsetsOneShorter set = liftM (`deleteItemAt` set) [0 .. setSize set - 1]
allSubsetsOneShorter :: (Itemset set it) => set it -> [set it]
allSubsetsOneShorter set = liftM (`deleteItemAt` set) [0 .. setSize set - 1]
allSubsetsOneShorter set = liftM (`deleteItemAt` set) [0 .. setSize set - 1]