{-# LANGUAGE NoImplicitPrelude, PolymorphicComponents #-}
module ModularPrelude.Module.HashSet
(
HashSetModule (..)
, HashSetImplements (..)
) where
import ModularPrelude hiding (empty)
import qualified Data.HashSet as HashSet
data HashSetModule = HashSet
{ HashSetModule
-> forall a b.
(Hashable b, Eq b) =>
(a -> b) -> HashSet a -> HashSet b
map :: forall a b. (Hashable b, Eq b) => (a -> b) -> HashSet a -> HashSet b
, HashSetModule -> forall a. (a -> Bool) -> HashSet a -> HashSet a
filter :: forall a. (a -> Bool) -> HashSet a -> HashSet a
, HashSetModule -> forall a. HashSet a -> Int
length :: forall a. HashSet a -> Int
, HashSetModule -> forall a. Hashable a => a -> HashSet a
singleton :: forall a. Hashable a => a -> HashSet a
, HashSetModule -> forall a. HashSet a -> Bool
null :: forall a. HashSet a -> Bool
, HashSetModule -> forall a. (Eq a, Hashable a) => [a] -> HashSet a
pack :: forall a. (Eq a, Hashable a) => [a] -> HashSet a
, HashSetModule -> forall a. HashSet a -> [a]
unpack :: forall a. HashSet a -> [a]
, HashSetModule -> forall a. (Eq a, Hashable a) => [a] -> HashSet a
fromList :: forall a. (Eq a, Hashable a) => [a] -> HashSet a
, HashSetModule -> forall a. HashSet a -> [a]
toList :: forall a. HashSet a -> [a]
, HashSetModule -> forall a. HashSet a
empty :: forall a. HashSet a
, HashSetModule
-> forall a. (Eq a, Hashable a) => a -> HashSet a -> HashSet a
insert :: forall a. (Eq a, Hashable a) => a -> HashSet a -> HashSet a
, HashSetModule
-> forall a. (Eq a, Hashable a) => a -> HashSet a -> HashSet a
delete :: forall a. (Eq a, Hashable a) => a -> HashSet a -> HashSet a
, HashSetModule
-> forall a. (Eq a, Hashable a) => a -> HashSet a -> Bool
member :: forall a. (Eq a, Hashable a) => a -> HashSet a -> Bool
}
class HashSetImplements interface where
_Data_HashSet_ :: interface
instance HashSetImplements HashSetModule where
_Data_HashSet_ :: HashSetModule
_Data_HashSet_ = HashSet
{ map :: forall a b.
(Hashable b, Eq b) =>
(a -> b) -> HashSet a -> HashSet b
map = (a -> b) -> HashSet a -> HashSet b
forall b a.
(Hashable b, Eq b) =>
(a -> b) -> HashSet a -> HashSet b
forall a b.
(Hashable b, Eq b) =>
(a -> b) -> HashSet a -> HashSet b
HashSet.map
, filter :: forall a. (a -> Bool) -> HashSet a -> HashSet a
filter = (a -> Bool) -> HashSet a -> HashSet a
forall a. (a -> Bool) -> HashSet a -> HashSet a
HashSet.filter
, length :: forall a. HashSet a -> Int
length = HashSet a -> Int
forall a. HashSet a -> Int
HashSet.size
, singleton :: forall a. Hashable a => a -> HashSet a
singleton = a -> HashSet a
forall a. Hashable a => a -> HashSet a
HashSet.singleton
, null :: forall a. HashSet a -> Bool
null = HashSet a -> Bool
forall a. HashSet a -> Bool
HashSet.null
, pack :: forall a. (Eq a, Hashable a) => [a] -> HashSet a
pack = [a] -> HashSet a
forall a. (Eq a, Hashable a) => [a] -> HashSet a
HashSet.fromList
, unpack :: forall a. HashSet a -> [a]
unpack = HashSet a -> [a]
forall a. HashSet a -> [a]
HashSet.toList
, fromList :: forall a. (Eq a, Hashable a) => [a] -> HashSet a
fromList = [a] -> HashSet a
forall a. (Eq a, Hashable a) => [a] -> HashSet a
HashSet.fromList
, toList :: forall a. HashSet a -> [a]
toList = HashSet a -> [a]
forall a. HashSet a -> [a]
HashSet.toList
, empty :: forall a. HashSet a
empty = HashSet a
forall a. HashSet a
HashSet.empty
, insert :: forall a. (Eq a, Hashable a) => a -> HashSet a -> HashSet a
insert = a -> HashSet a -> HashSet a
forall a. (Eq a, Hashable a) => a -> HashSet a -> HashSet a
HashSet.insert
, delete :: forall a. (Eq a, Hashable a) => a -> HashSet a -> HashSet a
delete = a -> HashSet a -> HashSet a
forall a. (Eq a, Hashable a) => a -> HashSet a -> HashSet a
HashSet.delete
, member :: forall a. (Eq a, Hashable a) => a -> HashSet a -> Bool
member = a -> HashSet a -> Bool
forall a. (Eq a, Hashable a) => a -> HashSet a -> Bool
HashSet.member
}
instance Default HashSetModule where
def :: HashSetModule
def = HashSetModule
forall interface. HashSetImplements interface => interface
_Data_HashSet_