lens-4.17: Lenses, Folds and Traversals

Copyright(C) 2012-16 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityprovisional
Portabilityportable
Safe HaskellSafe
LanguageHaskell98

Data.IntSet.Lens

Description

 
Synopsis

Documentation

members :: Fold IntSet Int #

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 #

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) (fromList [1,2,3,4])
fromList [2,3,4,5]

setOf :: Getting IntSet s Int -> s -> IntSet #

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 s Int     -> s -> IntSet
setOf :: ReifiedFold s Int       -> s -> IntSet
setOf :: Iso' s Int       -> s -> IntSet
setOf :: Lens' s Int      -> s -> IntSet
setOf :: Traversal' s Int -> s -> IntSet