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