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 | None |

Language | Haskell2010 |

# Documentation

members :: Fold IntSet Int Source #

IntSet isn't Foldable, but this `ReifiedFold`

can be used to access the members of an `IntSet`

.

`>>>`

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

setmapped :: IndexPreservingSetter' IntSet Int Source #

This `ReifiedSetter`

can be used to change the contents of an `IntSet`

by mapping
the elements to new values.

Sadly, you can't create a valid `ReifiedTraversal`

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

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

Construct an `IntSet`

from a `ReifiedGetter`

, `ReifiedFold`

, `ReifiedTraversal`

, `ReifiedLens`

or `ReifiedIso`

.

`>>>`

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

`>>>`

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

`setOf`

::`ReifiedGetter`

s`Int`

-> s ->`IntSet`

`setOf`

::`ReifiedFold`

s`Int`

-> s ->`IntSet`

`setOf`

::`Iso'`

s`Int`

-> s ->`IntSet`

`setOf`

::`Lens'`

s`Int`

-> s ->`IntSet`

`setOf`

::`Traversal'`

s`Int`

-> s ->`IntSet`