Copyright | (C) 2012-16 Edward Kmett |
---|---|

License | BSD-style (see the file LICENSE) |

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

Stability | provisional |

Portability | portable |

Safe Haskell | Safe-Inferred |

Language | Haskell2010 |

# Documentation

setmapped :: IndexPreservingSetter' IntSet Int Source #

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`

.

`>>>`

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

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

Construct an `IntSet`

from a `Getter`

, `Fold`

, `Traversal`

, `Lens`

or `Iso`

.

`>>>`

fromList [1,2,3,4]`setOf folded [1,2,3,4]`

`>>>`

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

`setOf`

::`Getter`

s`Int`

-> s ->`IntSet`

`setOf`

::`Fold`

s`Int`

-> s ->`IntSet`

`setOf`

::`Iso'`

s`Int`

-> s ->`IntSet`

`setOf`

::`Lens'`

s`Int`

-> s ->`IntSet`

`setOf`

::`Traversal'`

s`Int`

-> s ->`IntSet`