lens-3.7.0.2: Lenses, Folds and Traversals

Portabilityportable
Stabilityprovisional
MaintainerEdward Kmett <ekmett@gmail.com>
Safe HaskellSafe-Inferred

Data.IntSet.Lens

Description

 

Synopsis

Documentation

members :: Fold IntSet IntSource

IntSet isn't Foldable, but this Fold can be used to access the members of an IntSet.

>>> sumOf members $ setOf folded [1,2,3,4]
10

setmapped :: Simple Setter IntSet IntSource

This Setter can be used to change the contents of an IntSet by mapping the elements to new values.

Sadly, you can't create a valid Traversal 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 t Int b -> s -> IntSetSource

Construct an IntSet from a Getter, Fold, Traversal, Lens or Iso.

>>> setOf (folded._2) [("hello",1),("world",2),("!!!",3)]
fromList [1,2,3]
 setOf :: Getter s Int           -> s -> IntSet
 setOf :: Fold s Int             -> s -> IntSet
 setOf :: Simple Iso s Int       -> s -> IntSet
 setOf :: Simple Lens s Int      -> s -> IntSet
 setOf :: Simple Traversal s Int -> s -> IntSet