insert-ordered-containers-0.2.5.1: Associative containers retaining insertion order for traversals.
Safe HaskellTrustworthy
LanguageHaskell2010

Data.HashSet.InsOrd

Description

InsOrdHashSet is like HashMap, but it folds in insertion order.

This module interface mimics Data.HashSet, with some additions.

Synopsis

Documentation

data InsOrdHashSet k Source #

HashSet which tries its best to remember insertion order of elements.

Instances

Instances details
Foldable InsOrdHashSet Source # 
Instance details

Defined in Data.HashSet.InsOrd

Methods

fold :: Monoid m => InsOrdHashSet m -> m

foldMap :: Monoid m => (a -> m) -> InsOrdHashSet a -> m

foldMap' :: Monoid m => (a -> m) -> InsOrdHashSet a -> m

foldr :: (a -> b -> b) -> b -> InsOrdHashSet a -> b

foldr' :: (a -> b -> b) -> b -> InsOrdHashSet a -> b

foldl :: (b -> a -> b) -> b -> InsOrdHashSet a -> b

foldl' :: (b -> a -> b) -> b -> InsOrdHashSet a -> b

foldr1 :: (a -> a -> a) -> InsOrdHashSet a -> a

foldl1 :: (a -> a -> a) -> InsOrdHashSet a -> a

toList :: InsOrdHashSet a -> [a]

null :: InsOrdHashSet a -> Bool

length :: InsOrdHashSet a -> Int

elem :: Eq a => a -> InsOrdHashSet a -> Bool

maximum :: Ord a => InsOrdHashSet a -> a

minimum :: Ord a => InsOrdHashSet a -> a

sum :: Num a => InsOrdHashSet a -> a

product :: Num a => InsOrdHashSet a -> a

NFData1 InsOrdHashSet Source #

Since: 0.2.5

Instance details

Defined in Data.HashSet.InsOrd

Methods

liftRnf :: (a -> ()) -> InsOrdHashSet a -> ()

(Eq k, Hashable k) => IsList (InsOrdHashSet k) Source # 
Instance details

Defined in Data.HashSet.InsOrd

Associated Types

type Item (InsOrdHashSet k)

Methods

fromList :: [Item (InsOrdHashSet k)] -> InsOrdHashSet k

fromListN :: Int -> [Item (InsOrdHashSet k)] -> InsOrdHashSet k

toList :: InsOrdHashSet k -> [Item (InsOrdHashSet k)]

Eq k => Eq (InsOrdHashSet k) Source # 
Instance details

Defined in Data.HashSet.InsOrd

Methods

(==) :: InsOrdHashSet k -> InsOrdHashSet k -> Bool

(/=) :: InsOrdHashSet k -> InsOrdHashSet k -> Bool

(Data k, Hashable k) => Data (InsOrdHashSet k) Source # 
Instance details

Defined in Data.HashSet.InsOrd

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> InsOrdHashSet k -> c (InsOrdHashSet k)

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (InsOrdHashSet k)

toConstr :: InsOrdHashSet k -> Constr

dataTypeOf :: InsOrdHashSet k -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (InsOrdHashSet k))

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (InsOrdHashSet k))

gmapT :: (forall b. Data b => b -> b) -> InsOrdHashSet k -> InsOrdHashSet k

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> InsOrdHashSet k -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> InsOrdHashSet k -> r

gmapQ :: (forall d. Data d => d -> u) -> InsOrdHashSet k -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> InsOrdHashSet k -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> InsOrdHashSet k -> m (InsOrdHashSet k)

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> InsOrdHashSet k -> m (InsOrdHashSet k)

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> InsOrdHashSet k -> m (InsOrdHashSet k)

(Eq k, Hashable k, Read k) => Read (InsOrdHashSet k) Source # 
Instance details

Defined in Data.HashSet.InsOrd

Methods

readsPrec :: Int -> ReadS (InsOrdHashSet k)

readList :: ReadS [InsOrdHashSet k]

readPrec :: ReadPrec (InsOrdHashSet k)

readListPrec :: ReadPrec [InsOrdHashSet k]

Show k => Show (InsOrdHashSet k) Source # 
Instance details

Defined in Data.HashSet.InsOrd

Methods

showsPrec :: Int -> InsOrdHashSet k -> ShowS

show :: InsOrdHashSet k -> String

showList :: [InsOrdHashSet k] -> ShowS

(Eq k, Hashable k) => Semigroup (InsOrdHashSet k) Source # 
Instance details

Defined in Data.HashSet.InsOrd

Methods

(<>) :: InsOrdHashSet k -> InsOrdHashSet k -> InsOrdHashSet k

sconcat :: NonEmpty (InsOrdHashSet k) -> InsOrdHashSet k

stimes :: Integral b => b -> InsOrdHashSet k -> InsOrdHashSet k

(Eq k, Hashable k) => Monoid (InsOrdHashSet k) Source # 
Instance details

Defined in Data.HashSet.InsOrd

NFData k => NFData (InsOrdHashSet k) Source #

Since: 0.2.5

Instance details

Defined in Data.HashSet.InsOrd

Methods

rnf :: InsOrdHashSet k -> ()

(Eq a, Hashable a, FromJSON a) => FromJSON (InsOrdHashSet a) Source # 
Instance details

Defined in Data.HashSet.InsOrd

Methods

parseJSON :: Value -> Parser (InsOrdHashSet a)

parseJSONList :: Value -> Parser [InsOrdHashSet a]

ToJSON a => ToJSON (InsOrdHashSet a) Source # 
Instance details

Defined in Data.HashSet.InsOrd

Methods

toJSON :: InsOrdHashSet a -> Value

toEncoding :: InsOrdHashSet a -> Encoding

toJSONList :: [InsOrdHashSet a] -> Value

toEncodingList :: [InsOrdHashSet a] -> Encoding

Hashable k => Hashable (InsOrdHashSet k) Source #

hashWithSalt salt . toHashSet = hashWithSalt salt.

Instance details

Defined in Data.HashSet.InsOrd

Methods

hashWithSalt :: Int -> InsOrdHashSet k -> Int

hash :: InsOrdHashSet k -> Int

(Eq k, Hashable k) => At (InsOrdHashSet k) Source # 
Instance details

Defined in Data.HashSet.InsOrd

Methods

at :: Index (InsOrdHashSet k) -> Lens' (InsOrdHashSet k) (Maybe (IxValue (InsOrdHashSet k)))

(Eq a, Hashable a) => Contains (InsOrdHashSet a) Source # 
Instance details

Defined in Data.HashSet.InsOrd

Methods

contains :: Index (InsOrdHashSet a) -> Lens' (InsOrdHashSet a) Bool

(Eq k, Hashable k) => Ixed (InsOrdHashSet k) Source # 
Instance details

Defined in Data.HashSet.InsOrd

Methods

ix :: Index (InsOrdHashSet k) -> Traversal' (InsOrdHashSet k) (IxValue (InsOrdHashSet k))

(Eq k, Hashable k) => At (InsOrdHashSet k) Source # 
Instance details

Defined in Data.HashSet.InsOrd

Methods

at :: Index (InsOrdHashSet k) -> Lens' (InsOrdHashSet k) (Maybe (IxValue (InsOrdHashSet k)))

(Eq a, Hashable a) => Contains (InsOrdHashSet a) Source # 
Instance details

Defined in Data.HashSet.InsOrd

Methods

contains :: Index (InsOrdHashSet a) -> Lens' (InsOrdHashSet a) Bool

(Eq k, Hashable k) => Ixed (InsOrdHashSet k) Source # 
Instance details

Defined in Data.HashSet.InsOrd

Associated Types

type IxKind (InsOrdHashSet k)

Methods

ix :: Index (InsOrdHashSet k) -> Optic' (IxKind (InsOrdHashSet k)) NoIx (InsOrdHashSet k) (IxValue (InsOrdHashSet k))

type Index (InsOrdHashSet a) Source # 
Instance details

Defined in Data.HashSet.InsOrd

type Index (InsOrdHashSet a) = a
type IxValue (InsOrdHashSet a) Source # 
Instance details

Defined in Data.HashSet.InsOrd

type IxValue (InsOrdHashSet a) = ()
type Index (InsOrdHashSet a) Source # 
Instance details

Defined in Data.HashSet.InsOrd

type Index (InsOrdHashSet a) = a
type IxValue (InsOrdHashSet a) Source # 
Instance details

Defined in Data.HashSet.InsOrd

type IxValue (InsOrdHashSet a) = ()
type IxKind (InsOrdHashSet k) Source # 
Instance details

Defined in Data.HashSet.InsOrd

type IxKind (InsOrdHashSet k) = An_AffineTraversal
type Item (InsOrdHashSet k) Source # 
Instance details

Defined in Data.HashSet.InsOrd

type Item (InsOrdHashSet k) = k

Construction

singleton :: Hashable k => k -> InsOrdHashSet k Source #

Basic interface

null :: InsOrdHashSet k -> Bool Source #

member :: (Eq k, Hashable k) => k -> InsOrdHashSet k -> Bool Source #

insert :: (Eq k, Hashable k) => k -> InsOrdHashSet k -> InsOrdHashSet k Source #

delete :: (Eq k, Hashable k) => k -> InsOrdHashSet k -> InsOrdHashSet k Source #

Combine

union :: (Eq k, Hashable k) => InsOrdHashSet k -> InsOrdHashSet k -> InsOrdHashSet k Source #

Transformations

map :: (Hashable b, Eq b) => (a -> b) -> InsOrdHashSet a -> InsOrdHashSet b Source #

Unordered

Difference and intersection

difference :: (Eq a, Hashable a) => InsOrdHashSet a -> InsOrdHashSet a -> InsOrdHashSet a Source #

intersection :: (Eq a, Hashable a) => InsOrdHashSet a -> InsOrdHashSet a -> InsOrdHashSet a Source #

Folds

Unordered

Filter

filter :: (a -> Bool) -> InsOrdHashSet a -> InsOrdHashSet a Source #

Conversions

fromList :: (Eq k, Hashable k) => [k] -> InsOrdHashSet k Source #

toHashSet :: InsOrdHashSet k -> HashSet k Source #

fromHashSet :: HashSet k -> InsOrdHashSet k Source #

Lenses

hashSet :: Iso' (InsOrdHashSet a) (HashSet a) Source #

This is a slight lie, as roundtrip doesn't preserve ordering.

Debugging

valid :: InsOrdHashSet a -> Bool Source #

Test if the internal map structure is valid.