lens-3.8.5: Lenses, Folds and Traversals

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






setmapped :: (Ord i, Ord j) => IndexPreservingSetter (Set i) (Set j) i jSource

This Setter can be used to change the type of a Set by mapping the elements to new values.

Sadly, you can't create a valid Traversal for a Set, 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 (Set a) s t a b -> s -> Set aSource

Construct a set from a Getter, Fold, Traversal, Lens or Iso.

>>> setOf folded ["hello","world"]
fromList ["hello","world"]
>>> setOf (folded._2) [("hello",1),("world",2),("!!!",3)]
fromList [1,2,3]
 setOf ::          Getter s a     -> s -> Set a
 setOf :: Ord a => Fold s a       -> s -> Set a
 setOf ::          Iso' s a       -> s -> Set a
 setOf ::          Lens' s a      -> s -> Set a
 setOf :: Ord a => Traversal' s a -> s -> Set a