/
Control-Lens-At.html
64 lines (64 loc) · 35.5 KB
/
Control-Lens-At.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Control.Lens.At</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Control-Lens-At.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Lens-At.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">lens-3.10: Lenses, Folds and Traversals</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>non-portable</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>Edward Kmett <ekmett@gmail.com></td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr></table><p class="caption">Control.Lens.At</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">At
</a></li><li><a href="#g:2">Ixed
</a></li><li><a href="#g:3">Contains
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc empty"> </div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">class</span> <a href="Control-Lens-At.html#t:Ixed">Ixed</a> m => <a href="#t:At">At</a> m <span class="keyword">where</span><ul class="subs"><li><a href="#v:at">at</a> :: <a href="Control-Lens-At.html#t:Index">Index</a> m -> <a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a> m (<a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m))</li></ul></li><li class="src short"><a href="#v:sans">sans</a> :: <a href="Control-Lens-At.html#t:At">At</a> m => <a href="Control-Lens-At.html#t:Index">Index</a> m -> m -> m</li><li class="src short"><span class="keyword">type family</span> <a href="#t:Index">Index</a> s :: *</li><li class="src short"><span class="keyword">type family</span> <a href="#t:IxValue">IxValue</a> m :: *</li><li class="src short"><span class="keyword">class</span> <a href="#t:Ixed">Ixed</a> m <span class="keyword">where</span><ul class="subs"><li><a href="#v:ix">ix</a> :: <a href="Control-Lens-At.html#t:Index">Index</a> m -> <a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a> m (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m)</li></ul></li><li class="src short"><a href="#v:ixAt">ixAt</a> :: <a href="Control-Lens-At.html#t:At">At</a> m => <a href="Control-Lens-At.html#t:Index">Index</a> m -> <a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a> m (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m)</li><li class="src short"><span class="keyword">class</span> <a href="#t:Contains">Contains</a> m <span class="keyword">where</span><ul class="subs"><li><span class="keyword">type</span> <a href="#t:Containing">Containing</a> m f :: <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/GHC-Exts.html#t:Constraint">Constraint</a></li><li><a href="#v:contains">contains</a> :: <a href="Control-Lens-At.html#t:Containing">Containing</a> m f => <a href="Control-Lens-At.html#t:Index">Index</a> m -> <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> f m <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:containsProof">containsProof</a> :: p m -> q f -> (<a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> f) :- <a href="Control-Lens-At.html#t:Containing">Containing</a> m f</li></ul></li><li class="src short"><a href="#v:contains-39-">contains'</a> :: <span class="keyword">forall</span> m f. (<a href="Control-Lens-At.html#t:Contains">Contains</a> m, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> f) => <a href="Control-Lens-At.html#t:Index">Index</a> m -> <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> f m <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:containsIx">containsIx</a> :: (<a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> f, <a href="Control-Lens-At.html#t:Ixed">Ixed</a> m) => <a href="Control-Lens-At.html#t:Index">Index</a> m -> <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> f m <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:containsAt">containsAt</a> :: (<a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> f, <a href="Control-Lens-At.html#t:At">At</a> m) => <a href="Control-Lens-At.html#t:Index">Index</a> m -> <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> f m <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:containsLength">containsLength</a> :: (<a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> i, <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> i) => (s -> i) -> i -> <a href="Control-Lens-Type.html#t:Getter">Getter</a> s <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:containsN">containsN</a> :: <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a> -> <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a> -> <a href="Control-Lens-Type.html#t:Getter">Getter</a> s <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:containsTest">containsTest</a> :: (i -> s -> <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> i -> <a href="Control-Lens-Type.html#t:Getter">Getter</a> s <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:containsLookup">containsLookup</a> :: (i -> s -> <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> i -> <a href="Control-Lens-Type.html#t:Getter">Getter</a> s <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1 id="g:1">At
</h1><div class="top"><p class="src"><span class="keyword">class</span> <a href="Control-Lens-At.html#t:Ixed">Ixed</a> m => <a name="t:At" class="def">At</a> m <span class="keyword">where</span><a href="src/Control-Lens-At.html#At" class="link">Source</a></p><div class="doc"><p><code><a href="Control-Lens-At.html#t:At">At</a></code> provides a <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> that can be used to read,
write or delete the value associated with a key in a <code><a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Map-Lazy.html#t:Map">Map</a></code>-like
container on an ad hoc basis.
</p><p>An instance of <code><a href="Control-Lens-At.html#t:At">At</a></code> should satisfy:
</p><pre>
<code><a href="Control-Lens-At.html#v:ix">ix</a></code> k ≡ <code><a href="Control-Lens-At.html#v:at">at</a></code> k <code><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Prelude.html#v:.">.</a></code> <code><a href="Control-Lens-Traversal.html#v:traverse">traverse</a></code>
</pre></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:at" class="def">at</a> :: <a href="Control-Lens-At.html#t:Index">Index</a> m -> <a href="Control-Lens-Type.html#t:Lens-39-">Lens'</a> m (<a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m))<a href="src/Control-Lens-At.html#at" class="link">Source</a></p><div class="doc"><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>Map.fromList [(1,"world")] ^.at 1
</code></strong>Just "world"
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>at 1 ?~ "hello" $ Map.empty
</code></strong>fromList [(1,"hello")]
</pre><p><em>Note:</em> <code><a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Map-Lazy.html#t:Map">Map</a></code>-like containers form a reasonable instance, but not <code><a href="/usr/local/share/doc/ghc/html/libraries/array-0.4.0.1/Data-Array.html#t:Array">Array</a></code>-like ones, where
you cannot satisfy the <code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> laws.
</p></div></div><div class="subs instances"><p id="control.i:At" class="caption collapser" onclick="toggleSection('i:At')">Instances</p><div id="section.i:At" class="show"><table><tr><td class="src"><a href="Control-Lens-At.html#t:At">At</a> <a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-IntSet.html#t:IntSet">IntSet</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:At">At</a> (<a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:At">At</a> (<a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-IntMap-Strict.html#t:IntMap">IntMap</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> k => <a href="Control-Lens-At.html#t:At">At</a> (<a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Set.html#t:Set">Set</a> k)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, Hashable k) => <a href="Control-Lens-At.html#t:At">At</a> (HashSet k)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> k => <a href="Control-Lens-At.html#t:At">At</a> (<a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Map-Lazy.html#t:Map">Map</a> k a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, Hashable k) => <a href="Control-Lens-At.html#t:At">At</a> (HashMap k a)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:sans" class="def">sans</a> :: <a href="Control-Lens-At.html#t:At">At</a> m => <a href="Control-Lens-At.html#t:Index">Index</a> m -> m -> m<a href="src/Control-Lens-At.html#sans" class="link">Source</a></p></div><h1 id="g:2">Ixed
</h1><div class="top"><p class="src"><span class="keyword">type family</span> <a name="t:Index" class="def">Index</a> s :: *<a href="src/Control-Lens-At.html#Index" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">type family</span> <a name="t:IxValue" class="def">IxValue</a> m :: *<a href="src/Control-Lens-At.html#IxValue" class="link">Source</a></p><div class="doc"><p>This provides a common notion of a value at an index that is shared by both <code><a href="Control-Lens-At.html#t:Ixed">Ixed</a></code> and <code><a href="Control-Lens-At.html#t:At">At</a></code>.
</p></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:Ixed" class="def">Ixed</a> m <span class="keyword">where</span><a href="src/Control-Lens-At.html#Ixed" class="link">Source</a></p><div class="doc"><p>This simple <code>AffineTraversal</code> lets you <code><a href="Control-Lens-Traversal.html#v:traverse">traverse</a></code> the value at a given
key in a <code><a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Map-Lazy.html#t:Map">Map</a></code> or element at an ordinal position in a list or <code><a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Sequence.html#t:Seq">Seq</a></code>.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:ix" class="def">ix</a> :: <a href="Control-Lens-At.html#t:Index">Index</a> m -> <a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a> m (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m)<a href="src/Control-Lens-At.html#ix" class="link">Source</a></p><div class="doc"><p>This simple <code>AffineTraversal</code> lets you <code><a href="Control-Lens-Traversal.html#v:traverse">traverse</a></code> the value at a given
key in a <code><a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Map-Lazy.html#t:Map">Map</a></code> or element at an ordinal position in a list or <code><a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Sequence.html#t:Seq">Seq</a></code>.
</p><p><em>NB:</em> Setting the value of this <code>AffineTraversal</code> will only set the value in the
<code><a href="Control-Lens-Type.html#t:Lens">Lens</a></code> if it is already present.
</p><p>If you want to be able to insert <em>missing</em> values, you want <code><a href="Control-Lens-At.html#v:at">at</a></code>.
</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>Seq.fromList [a,b,c,d] & ix 2 %~ f
</code></strong>fromList [a,b,f c,d]
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>Seq.fromList [a,b,c,d] & ix 2 .~ e
</code></strong>fromList [a,b,e,d]
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>Seq.fromList [a,b,c,d] ^? ix 2
</code></strong>Just c
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>Seq.fromList [] ^? ix 2
</code></strong>Nothing
</pre></div></div><div class="subs instances"><p id="control.i:Ixed" class="caption collapser" onclick="toggleSection('i:Ixed')">Instances</p><div id="section.i:Ixed" class="show"><table><tr><td class="src"><a href="Control-Lens-At.html#t:Ixed">Ixed</a> <a href="/usr/local/share/doc/ghc/html/libraries/bytestring-0.10.0.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Ixed">Ixed</a> <a href="/usr/local/share/doc/ghc/html/libraries/bytestring-0.10.0.2/Data-ByteString.html#t:ByteString">ByteString</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Ixed">Ixed</a> <a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-IntSet.html#t:IntSet">IntSet</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Ixed">Ixed</a> Text</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Ixed">Ixed</a> Text</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Ixed">Ixed</a> [a]</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Ixed">Ixed</a> (<a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Ixed">Ixed</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Ixed">Ixed</a> (<a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Tree.html#t:Tree">Tree</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Ixed">Ixed</a> (<a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Sequence.html#t:Seq">Seq</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Ixed">Ixed</a> (<a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-IntMap-Strict.html#t:IntMap">IntMap</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> k => <a href="Control-Lens-At.html#t:Ixed">Ixed</a> (<a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Set.html#t:Set">Set</a> k)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Ixed">Ixed</a> (NonEmpty a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Ixed">Ixed</a> (Vector a)</td><td class="doc empty"> </td></tr><tr><td class="src">Prim a => <a href="Control-Lens-At.html#t:Ixed">Ixed</a> (Vector a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Foreign-Storable.html#t:Storable">Storable</a> a => <a href="Control-Lens-At.html#t:Ixed">Ixed</a> (Vector a)</td><td class="doc empty"> </td></tr><tr><td class="src">Unbox a => <a href="Control-Lens-At.html#t:Ixed">Ixed</a> (Vector a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, Hashable k) => <a href="Control-Lens-At.html#t:Ixed">Ixed</a> (HashSet k)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/local/share/doc/ghc/html/libraries/array-0.4.0.1/Data-Array-IArray.html#t:IArray">IArray</a> <a href="/usr/local/share/doc/ghc/html/libraries/array-0.4.0.1/Data-Array-Unboxed.html#t:UArray">UArray</a> e, <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Ix.html#t:Ix">Ix</a> i) => <a href="Control-Lens-At.html#t:Ixed">Ixed</a> (<a href="/usr/local/share/doc/ghc/html/libraries/array-0.4.0.1/Data-Array-Unboxed.html#t:UArray">UArray</a> i e)</td><td class="doc"><pre>
arr <code>!</code> i ≡ arr <code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code> <code><a href="Control-Lens-At.html#v:ix">ix</a></code> i
arr <code>//</code> [(i,e)] ≡ <code><a href="Control-Lens-At.html#v:ix">ix</a></code> i <code><a href="Control-Lens-Setter.html#v:.-126-">.~</a></code> e <code><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Prelude.html#v:-36-">$</a></code> arr
</pre></td></tr><tr><td class="src"><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Ix.html#t:Ix">Ix</a> i => <a href="Control-Lens-At.html#t:Ixed">Ixed</a> (<a href="/usr/local/share/doc/ghc/html/libraries/array-0.4.0.1/Data-Array.html#t:Array">Array</a> i e)</td><td class="doc"><pre>
arr <code>!</code> i ≡ arr <code><a href="Control-Lens-Getter.html#v:-94-.">^.</a></code> <code><a href="Control-Lens-At.html#v:ix">ix</a></code> i
arr <code>//</code> [(i,e)] ≡ <code><a href="Control-Lens-At.html#v:ix">ix</a></code> i <code><a href="Control-Lens-Setter.html#v:.-126-">.~</a></code> e <code><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Prelude.html#v:-36-">$</a></code> arr
</pre></td></tr><tr><td class="src"><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> k => <a href="Control-Lens-At.html#t:Ixed">Ixed</a> (<a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Map-Lazy.html#t:Map">Map</a> k a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, Hashable k) => <a href="Control-Lens-At.html#t:Ixed">Ixed</a> (HashMap k a)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:ixAt" class="def">ixAt</a> :: <a href="Control-Lens-At.html#t:At">At</a> m => <a href="Control-Lens-At.html#t:Index">Index</a> m -> <a href="Control-Lens-Type.html#t:Traversal-39-">Traversal'</a> m (<a href="Control-Lens-At.html#t:IxValue">IxValue</a> m)<a href="src/Control-Lens-At.html#ixAt" class="link">Source</a></p><div class="doc"><p>A definition of <code><a href="Control-Lens-At.html#v:ix">ix</a></code> for types with an <code><a href="Control-Lens-At.html#t:At">At</a></code> instance. This is the default
if you don't specify a definition for <code><a href="Control-Lens-At.html#v:ix">ix</a></code>.
</p></div></div><h1 id="g:3">Contains
</h1><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:Contains" class="def">Contains</a> m <span class="keyword">where</span><a href="src/Control-Lens-At.html#Contains" class="link">Source</a></p><div class="doc"><p>This class provides a simple <code><a href="Control-Lens-Type.html#t:IndexedFold">IndexedFold</a></code> (or <code><a href="Control-Lens-Type.html#t:IndexedTraversal">IndexedTraversal</a></code>) that lets you view (and modify)
information about whether or not a container contains a given <code><a href="Control-Lens-At.html#t:Index">Index</a></code>.
</p></div><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">type</span> <a name="t:Containing" class="def">Containing</a> m f :: <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/GHC-Exts.html#t:Constraint">Constraint</a><a href="src/Control-Lens-At.html#Containing" class="link">Source</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:contains" class="def">contains</a> :: <a href="Control-Lens-At.html#t:Containing">Containing</a> m f => <a href="Control-Lens-At.html#t:Index">Index</a> m -> <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> f m <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-At.html#contains" class="link">Source</a></p><div class="doc"><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>IntSet.fromList [1,2,3,4] ^. contains 3
</code></strong>True
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>IntSet.fromList [1,2,3,4] ^. contains 5
</code></strong>False
</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>IntSet.fromList [1,2,3,4] & contains 3 .~ False
</code></strong>fromList [1,2,4]
</pre></div><p class="src"><a name="v:containsProof" class="def">containsProof</a> :: p m -> q f -> (<a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> f) :- <a href="Control-Lens-At.html#t:Containing">Containing</a> m f<a href="src/Control-Lens-At.html#containsProof" class="link">Source</a></p><div class="doc"><p>Every instance of Contains is at least a <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code>
</p></div></div><div class="subs instances"><p id="control.i:Contains" class="caption collapser" onclick="toggleSection('i:Contains')">Instances</p><div id="section.i:Contains" class="show"><table><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> <a href="/usr/local/share/doc/ghc/html/libraries/bytestring-0.10.0.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> <a href="/usr/local/share/doc/ghc/html/libraries/bytestring-0.10.0.2/Data-ByteString.html#t:ByteString">ByteString</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> <a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-IntSet.html#t:IntSet">IntSet</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> Text</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> Text</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> [a]</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (<a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Complex.html#t:Complex">Complex</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (<a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (<a href="Control-Lens-Setter.html#t:Identity">Identity</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (<a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Tree.html#t:Tree">Tree</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (<a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Sequence.html#t:Seq">Seq</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (<a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-IntMap-Strict.html#t:IntMap">IntMap</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> a => <a href="Control-Lens-At.html#t:Contains">Contains</a> (<a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Set.html#t:Set">Set</a> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (NonEmpty a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (Vector a)</td><td class="doc empty"> </td></tr><tr><td class="src">Prim a => <a href="Control-Lens-At.html#t:Contains">Contains</a> (Vector a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Foreign-Storable.html#t:Storable">Storable</a> a => <a href="Control-Lens-At.html#t:Contains">Contains</a> (Vector a)</td><td class="doc empty"> </td></tr><tr><td class="src">Unbox a => <a href="Control-Lens-At.html#t:Contains">Contains</a> (Vector a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> a, Hashable a) => <a href="Control-Lens-At.html#t:Contains">Contains</a> (HashSet a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (e -> a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (a, b)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/local/share/doc/ghc/html/libraries/array-0.4.0.1/Data-Array-IArray.html#t:IArray">IArray</a> <a href="/usr/local/share/doc/ghc/html/libraries/array-0.4.0.1/Data-Array-Unboxed.html#t:UArray">UArray</a> e, <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Ix.html#t:Ix">Ix</a> i) => <a href="Control-Lens-At.html#t:Contains">Contains</a> (<a href="/usr/local/share/doc/ghc/html/libraries/array-0.4.0.1/Data-Array-Unboxed.html#t:UArray">UArray</a> i e)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Ix.html#t:Ix">Ix</a> i => <a href="Control-Lens-At.html#t:Contains">Contains</a> (<a href="/usr/local/share/doc/ghc/html/libraries/array-0.4.0.1/Data-Array.html#t:Array">Array</a> i e)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> k => <a href="Control-Lens-At.html#t:Contains">Contains</a> (<a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Map-Lazy.html#t:Map">Map</a> k a)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> k, Hashable k) => <a href="Control-Lens-At.html#t:Contains">Contains</a> (HashMap k a)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (a, b, c)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (a, b, c, d)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (a, b, c, d, e)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (a, b, c, d, e, f)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (a, b, c, d, e, f, g)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (a, b, c, d, e, f, g, h)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Lens-At.html#t:Contains">Contains</a> (a, b, c, d, e, f, g, h, i)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:contains-39-" class="def">contains'</a> :: <span class="keyword">forall</span> m f. (<a href="Control-Lens-At.html#t:Contains">Contains</a> m, <a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> f) => <a href="Control-Lens-At.html#t:Index">Index</a> m -> <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> f m <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-At.html#contains%27" class="link">Source</a></p><div class="doc"><pre>
<code><a href="Control-Lens-At.html#v:contains-39-">contains'</a></code> :: <code><a href="Control-Lens-At.html#t:Contains">Contains</a></code> m => <code><a href="Control-Lens-At.html#t:Index">Index</a></code> m -> <code><a href="Control-Lens-Type.html#t:Getter">Getter</a></code> m <code><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></code>
</pre></div></div><div class="top"><p class="src"><a name="v:containsIx" class="def">containsIx</a> :: (<a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> f, <a href="Control-Lens-At.html#t:Ixed">Ixed</a> m) => <a href="Control-Lens-At.html#t:Index">Index</a> m -> <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> f m <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-At.html#containsIx" class="link">Source</a></p><div class="doc"><p>A definition of <code><a href="Control-Lens-At.html#v:contains">contains</a></code> for types with an <code><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Ix.html#t:Ix">Ix</a></code> instance.
</p></div></div><div class="top"><p class="src"><a name="v:containsAt" class="def">containsAt</a> :: (<a href="Control-Lens-Getter.html#t:Contravariant">Contravariant</a> f, <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Control-Monad.html#t:Functor">Functor</a> f, <a href="Control-Lens-At.html#t:At">At</a> m) => <a href="Control-Lens-At.html#t:Index">Index</a> m -> <a href="Control-Lens-Type.html#t:LensLike-39-">LensLike'</a> f m <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-At.html#containsAt" class="link">Source</a></p><div class="doc"><p>A definition of <code><a href="Control-Lens-At.html#v:ix">ix</a></code> for types with an <code><a href="Control-Lens-At.html#t:At">At</a></code> instance. This is the default
if you don't specify a definition for <code><a href="Control-Lens-At.html#v:contains">contains</a></code> and you are on GHC >= 7.0.2
</p></div></div><div class="top"><p class="src"><a name="v:containsLength" class="def">containsLength</a> :: (<a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> i, <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Prelude.html#t:Num">Num</a> i) => (s -> i) -> i -> <a href="Control-Lens-Type.html#t:Getter">Getter</a> s <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-At.html#containsLength" class="link">Source</a></p><div class="doc"><p>Construct a <code><a href="Control-Lens-At.html#v:contains">contains</a></code> check based on some notion of <code><a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-List.html#v:length">length</a></code> for the container.
</p></div></div><div class="top"><p class="src"><a name="v:containsN" class="def">containsN</a> :: <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a> -> <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a> -> <a href="Control-Lens-Type.html#t:Getter">Getter</a> s <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-At.html#containsN" class="link">Source</a></p><div class="doc"><p>Construct a <code><a href="Control-Lens-At.html#v:contains">contains</a></code> check for a fixed number of elements.
</p></div></div><div class="top"><p class="src"><a name="v:containsTest" class="def">containsTest</a> :: (i -> s -> <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a>) -> i -> <a href="Control-Lens-Type.html#t:Getter">Getter</a> s <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-At.html#containsTest" class="link">Source</a></p><div class="doc"><p>Construct a <code><a href="Control-Lens-At.html#v:contains">contains</a></code> check that uses an arbitrary test.
</p></div></div><div class="top"><p class="src"><a name="v:containsLookup" class="def">containsLookup</a> :: (i -> s -> <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a) -> i -> <a href="Control-Lens-Type.html#t:Getter">Getter</a> s <a href="/usr/local/share/doc/ghc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Lens-At.html#containsLookup" class="link">Source</a></p><div class="doc"><p>Construct a <code><a href="Control-Lens-At.html#v:contains">contains</a></code> check that uses an arbitrary <code><a href="/usr/local/share/doc/ghc/html/libraries/containers-0.5.0.0/Data-Map-Lazy.html#v:lookup">lookup</a></code> function.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.2</p></div></body></html>