Copyright | (C) 2012-16 Edward Kmett |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | provisional |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Documentation
members :: Fold IntSet Int Source #
IntSet isn't Foldable, but this ReifiedFold
can be used to access the members of an IntSet
.
>>>
sumOf members $ setOf folded [1,2,3,4]
10
setmapped :: IndexPreservingSetter' IntSet Int Source #
This ReifiedSetter
can be used to change the contents of an IntSet
by mapping
the elements to new values.
Sadly, you can't create a valid ReifiedTraversal
for a Set
, because the number of
elements might change but you can manipulate it by reading using folded
and
reindexing it via setmapped
.
>>>
over setmapped (+1) (IntSet.fromList [1,2,3,4])
fromList [2,3,4,5]
setOf :: Getting IntSet s Int -> s -> IntSet Source #
Construct an IntSet
from a ReifiedGetter
, ReifiedFold
, ReifiedTraversal
, ReifiedLens
or ReifiedIso
.
>>>
setOf folded [1,2,3,4]
fromList [1,2,3,4]
>>>
setOf (folded._2) [("hello",1),("world",2),("!!!",3)]
fromList [1,2,3]
setOf
::ReifiedGetter
sInt
-> s ->IntSet
setOf
::ReifiedFold
sInt
-> s ->IntSet
setOf
::Iso'
sInt
-> s ->IntSet
setOf
::Lens'
sInt
-> s ->IntSet
setOf
::Traversal'
sInt
-> s ->IntSet