optics-core-0.4.1: Optics as an abstract interface: core definitions
Safe Haskell None
Language Haskell2010

Data.Set.Optics

Description

This module defines optics for constructing and manipulating finite Set s.

Synopsis

Documentation

setmapped :: Ord b => Setter ( Set a) ( Set b) a b Source #

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

setOf :: ( Is k A_Fold , Ord a) => Optic' k is s a -> s -> Set a Source #

Construct a set from a fold.

>>> setOf folded ["hello","world"]
fromList ["hello","world"]
>>> setOf (folded % _2) [("hello",1),("world",2),("!!!",3)]
fromList [1,2,3]