Portability | portable |
---|---|

Stability | provisional |

Maintainer | Edward Kmett <ekmett@gmail.com> |

Safe Haskell | Safe-Infered |

# Documentation

setmapped :: (Eq i, Hashable i, Eq j, Hashable j) => Setter (HashSet i) (HashSet j) i jSource

This `Setter`

can be used to change the type of a `HashSet`

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 `setmap`

.

`>>>`

`:m + Data.HashSet Control.Lens`

`>>>`

fromList [2,3,4,5]`over setmapped (+1) (fromList [1,2,3,4])`

setOf :: Hashable c => Getting (HashSet c) a c -> a -> HashSet cSource

Construct a set from a `Getter`

, `Fold`

, `Traversal`

, `Lens`

or `Iso`

.

`>>>`

`:m + Control.Lens`

`>>>`

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

setOf ::`Hashable`

c =>`Getter`

a c -> a ->`HashSet`

c setOf :: (`Eq`

c,`Hashable`

c) =>`Fold`

a c -> a ->`HashSet`

c setOf ::`Hashable`

c =>`Simple`

`Iso`

a c -> a ->`HashSet`

c setOf ::`Hashable`

c =>`Simple`

`Lens`

a c -> a ->`HashSet`

c setOf :: (`Eq`

c,`Hashable`

c) =>`Simple`

`Traversal`

a c -> a ->`HashSet`

c