module Set
(
Set,
empty,
singleton,
insert,
remove,
isEmpty,
member,
size,
union,
intersect,
diff,
toList,
fromList,
map,
foldl,
foldr,
filter,
partition,
)
where
import Basics (Bool, Int, Ord, (>>))
import qualified Data.Set
import List (List)
import qualified Prelude
type Set t =
Data.Set.Set t
empty :: Set a
empty :: Set a
empty =
Set a
forall a. Set a
Data.Set.empty
singleton :: comparable -> Set comparable
singleton :: comparable -> Set comparable
singleton =
comparable -> Set comparable
forall a. a -> Set a
Data.Set.singleton
insert :: Ord comparable => comparable -> Set comparable -> Set comparable
insert :: comparable -> Set comparable -> Set comparable
insert =
comparable -> Set comparable -> Set comparable
forall a. Ord a => a -> Set a -> Set a
Data.Set.insert
remove :: Ord comparable => comparable -> Set comparable -> Set comparable
remove :: comparable -> Set comparable -> Set comparable
remove =
comparable -> Set comparable -> Set comparable
forall a. Ord a => a -> Set a -> Set a
Data.Set.delete
isEmpty :: Set a -> Bool
isEmpty :: Set a -> Bool
isEmpty =
Set a -> Bool
forall a. Set a -> Bool
Data.Set.null
member :: Ord comparable => comparable -> Set comparable -> Bool
member :: comparable -> Set comparable -> Bool
member =
comparable -> Set comparable -> Bool
forall a. Ord a => a -> Set a -> Bool
Data.Set.member
size :: Set a -> Int
size :: Set a -> Int
size =
Set a -> Int
forall a. Set a -> Int
Data.Set.size (Set a -> Int) -> (Int -> Int) -> Set a -> Int
forall a b c. (a -> b) -> (b -> c) -> a -> c
>> Int -> Int
forall a b. (Integral a, Num b) => a -> b
Prelude.fromIntegral
union :: Ord comparable => Set comparable -> Set comparable -> Set comparable
union :: Set comparable -> Set comparable -> Set comparable
union =
Set comparable -> Set comparable -> Set comparable
forall a. Ord a => Set a -> Set a -> Set a
Data.Set.union
intersect :: Ord comparable => Set comparable -> Set comparable -> Set comparable
intersect :: Set comparable -> Set comparable -> Set comparable
intersect =
Set comparable -> Set comparable -> Set comparable
forall a. Ord a => Set a -> Set a -> Set a
Data.Set.intersection
diff :: Ord comparable => Set comparable -> Set comparable -> Set comparable
diff :: Set comparable -> Set comparable -> Set comparable
diff =
Set comparable -> Set comparable -> Set comparable
forall a. Ord a => Set a -> Set a -> Set a
Data.Set.difference
toList :: Set a -> List a
toList :: Set a -> List a
toList =
Set a -> List a
forall a. Set a -> [a]
Data.Set.toAscList
fromList :: Ord comparable => List comparable -> Set comparable
fromList :: List comparable -> Set comparable
fromList =
List comparable -> Set comparable
forall a. Ord a => [a] -> Set a
Data.Set.fromList
foldl :: (a -> b -> b) -> b -> Set a -> b
foldl :: (a -> b -> b) -> b -> Set a -> b
foldl a -> b -> b
func =
(b -> a -> b) -> b -> Set a -> b
forall a b. (a -> b -> a) -> a -> Set b -> a
Data.Set.foldl' (\b
a a
b -> a -> b -> b
func a
b b
a)
foldr :: (a -> b -> b) -> b -> Set a -> b
foldr :: (a -> b -> b) -> b -> Set a -> b
foldr =
(a -> b -> b) -> b -> Set a -> b
forall a b. (a -> b -> b) -> b -> Set a -> b
Data.Set.foldr'
map :: Ord comparable2 => (comparable -> comparable2) -> Set comparable -> Set comparable2
map :: (comparable -> comparable2) -> Set comparable -> Set comparable2
map =
(comparable -> comparable2) -> Set comparable -> Set comparable2
forall b a. Ord b => (a -> b) -> Set a -> Set b
Data.Set.map
filter :: (comparable -> Bool) -> Set comparable -> Set comparable
filter :: (comparable -> Bool) -> Set comparable -> Set comparable
filter =
(comparable -> Bool) -> Set comparable -> Set comparable
forall a. (a -> Bool) -> Set a -> Set a
Data.Set.filter
partition :: (comparable -> Bool) -> Set comparable -> (Set comparable, Set comparable)
partition :: (comparable -> Bool)
-> Set comparable -> (Set comparable, Set comparable)
partition =
(comparable -> Bool)
-> Set comparable -> (Set comparable, Set comparable)
forall a. (a -> Bool) -> Set a -> (Set a, Set a)
Data.Set.partition