"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/Cabal/docs/Distribution-Compat-Prelude-Internal.html#v:zip'><s0>zip</s0></a> ∷ () ⇒ [a] → [b] → [(a, b)]</span><div class='hoogle-doc'><a>zip</a> takes two lists and returns a list of corresponding pairs.\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/Cabal/docs/Distribution-Compat-Prelude-Internal.html#v:zip'><s0>zip</s0></a> ∷ () ⇒ [a] → [b] → [(a, b)]</span><div class='hoogle-doc'><a>zip</a> takes two lists and returns a list of corresponding pairs.\n",
"\n",
"<pre>\n",
"zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')]\n",
"</pre>\n",
"\n",
"If one input list is short, excess elements of the longer list are\n",
"If one input list is short, excess elements of the longer list are\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/rio/docs/RIO.html#v:zip'><s0>zip</s0></a> ∷ () ⇒ [a] → [b] → [(a, b)]</span><div class='hoogle-doc'><a>zip</a> takes two lists and returns a list of corresponding pairs.\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/rio/docs/RIO.html#v:zip'><s0>zip</s0></a> ∷ () ⇒ [a] → [b] → [(a, b)]</span><div class='hoogle-doc'><a>zip</a> takes two lists and returns a list of corresponding pairs.\n",
"\n",
"<pre>\n",
"zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')]\n",
"</pre>\n",
"\n",
"If one input list is short, excess elements of the longer list are\n",
"If one input list is short, excess elements of the longer list are\n",
"discarded.\n",
"discarded:\n",
"\n",
"<pre>\n",
"zip [1] ['a', 'b'] = [(1, 'a')]\n",
"zip [1, 2] ['a'] = [(1, 'a')]\n",
"</pre>\n",
"\n",
"\n",
"<a>zip</a> is right-lazy:\n",
"<a>zip</a> is right-lazy:\n",
"\n",
"\n",
"<pre>\n",
"<pre>\n",
"zip [] _|_ = []\n",
"zip [] _|_ = []\n",
"zip _|_ [] = _|_\n",
"</pre>\n",
"</pre>\n",
"</div>\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/rio/docs/RIO-List.html#v:zip'><s0>zip</s0></a> ∷ () ⇒ [a] → [b] → [(a, b)]</span><div class='hoogle-doc'><a>zip</a> takes two lists and returns a list of corresponding pairs.\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/rio/docs/RIO-List.html#v:zip'><s0>zip</s0></a> ∷ () ⇒ [a] → [b] → [(a, b)]</span><div class='hoogle-doc'><a>zip</a> takes two lists and returns a list of corresponding pairs.\n",
"\n",
"<pre>\n",
"zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')]\n",
"</pre>\n",
"\n",
"If one input list is short, excess elements of the longer list are\n",
"If one input list is short, excess elements of the longer list are\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/rebase/docs/Rebase-Prelude.html#v:zip'><s0>zip</s0></a> ∷ () ⇒ [a] → [b] → [(a, b)]</span><div class='hoogle-doc'><a>zip</a> takes two lists and returns a list of corresponding pairs.\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/rebase/docs/Rebase-Prelude.html#v:zip'><s0>zip</s0></a> ∷ () ⇒ [a] → [b] → [(a, b)]</span><div class='hoogle-doc'><a>zip</a> takes two lists and returns a list of corresponding pairs.\n",
"If one input list is short, excess elements of the longer list are\n",
"If one input list is short, excess elements of the longer list are\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/universe-base/docs/Data-Universe-Helpers.html#v:-43--42--43-'>(<s0>+*+</s0>)</a> ∷ [a] → [b] → [(a, b)]</span><div class='hoogle-doc'>Slightly unfair 2-way Cartesian product: given two (possibly infinite)\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/universe-base/docs/Data-Universe-Helpers.html#v:-43--42--43-'>(<s0>+*+</s0>)</a> ∷ [a] → [b] → [(a, b)]</span><div class='hoogle-doc'>Slightly unfair 2-way Cartesian product: given two (possibly infinite)\n",
"lists, produce a single list such that whenever <tt>v</tt> and\n",
"lists, produce a single list such that whenever <tt>v</tt> and\n",
"<tt>w</tt> have finite indices in the input lists, <tt>(v,w)</tt> has\n",
"<tt>w</tt> have finite indices in the input lists, <tt>(v,w)</tt> has\n",
...
@@ -2139,13 +2172,24 @@
...
@@ -2139,13 +2172,24 @@
"</pre>\n",
"</pre>\n",
"</div>\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/hledger-web/docs/Hledger-Web-Import.html#v:zip'><s0>zip</s0></a> ∷ () ⇒ [a] → [b] → [(a, b)]</span><div class='hoogle-doc'><a>zip</a> takes two lists and returns a list of corresponding pairs.\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/hledger-web/docs/Hledger-Web-Import.html#v:zip'><s0>zip</s0></a> ∷ () ⇒ [a] → [b] → [(a, b)]</span><div class='hoogle-doc'><a>zip</a> takes two lists and returns a list of corresponding pairs.\n",
"\n",
"<pre>\n",
"zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')]\n",
"</pre>\n",
"\n",
"If one input list is short, excess elements of the longer list are\n",
"If one input list is short, excess elements of the longer list are\n",
"discarded.\n",
"discarded:\n",
"\n",
"<pre>\n",
"zip [1] ['a', 'b'] = [(1, 'a')]\n",
"zip [1, 2] ['a'] = [(1, 'a')]\n",
"</pre>\n",
"\n",
"\n",
"<a>zip</a> is right-lazy:\n",
"<a>zip</a> is right-lazy:\n",
"\n",
"\n",
"<pre>\n",
"<pre>\n",
"zip [] _|_ = []\n",
"zip [] _|_ = []\n",
"zip _|_ [] = _|_\n",
"</pre>\n",
"</pre>\n",
"</div>\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/ghc/docs/Util.html#v:zipLazy'><s0>zipLazy</s0></a> ∷ [a] → [b] → [(a, b)]</span><div class='hoogle-doc'><a>zipLazy</a> is a kind of <a>zip</a> that is lazy in the second list\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/ghc/docs/Util.html#v:zipLazy'><s0>zipLazy</s0></a> ∷ [a] → [b] → [(a, b)]</span><div class='hoogle-doc'><a>zipLazy</a> is a kind of <a>zip</a> that is lazy in the second list\n",
...
@@ -2158,15 +2202,10 @@
...
@@ -2158,15 +2202,10 @@
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/invertible/docs/Control-Invertible-Monoidal.html#v:pairADefault'><s0>pairADefault</s0></a> ∷ Applicative f ⇒ f a → f b → f (a, b)</span><div class='hoogle-doc'>Default '>*< implementation for non-invertible\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/invertible/docs/Control-Invertible-Monoidal.html#v:pairADefault'><s0>pairADefault</s0></a> ∷ Applicative f ⇒ f a → f b → f (a, b)</span><div class='hoogle-doc'>Default '>*< implementation for non-invertible\n",
"<a>Applicative</a>s.\n",
"<a>Applicative</a>s.\n",
"</div>\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/vector/docs/Data-Vector-Generic.html#v:zip'><s0>zip</s0></a> ∷ (Vector v a, Vector v b, Vector v (a, b)) ⇒ v a → v b → v (a, b)</span><div class='hoogle-doc'><i>O(min(m,n))</i> Zip two vectors\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/statistics/docs/Statistics-Sample.html#v:pair'><s0>pair</s0></a> ∷ (Vector v a, Vector v b, Vector v (a, b)) ⇒ v a → v b → v (a, b)</span><div class='hoogle-doc'>Pair two samples. It's like <a>zip</a> but requires that both samples\n",
"have equal size.\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/rio/docs/RIO-Vector.html#v:zip'><s0>zip</s0></a> ∷ (Vector v a, Vector v b, Vector v (a, b)) ⇒ v a → v b → v (a, b)</span><div class='hoogle-doc'><i>O(min(m,n))</i> Zip two vectors\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/unliftio/docs/UnliftIO-Async.html#v:concurrently'><s0>concurrently</s0></a> ∷ MonadUnliftIO m ⇒ m a → m b → m (a, b)</span><div class='hoogle-doc'>Unlifted <a>concurrently</a>.\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/unliftio/docs/UnliftIO-Async.html#v:concurrently'><s0>concurrently</s0></a> ∷ MonadUnliftIO m ⇒ m a → m b → m (a, b)</span><div class='hoogle-doc'>Unlifted <a>concurrently</a>.\n",
"</div>\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/unliftio/docs/UnliftIO-Internals-Async.html#v:concurrently'><s0>concurrently</s0></a> ∷ MonadUnliftIO m ⇒ m a → m b → m (a, b)</span><div class='hoogle-doc'>Unlifted <a>concurrently</a>.\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/stack/docs/Stack-Prelude.html#v:concurrently'><s0>concurrently</s0></a> ∷ MonadUnliftIO m ⇒ m a → m b → m (a, b)</span><div class='hoogle-doc'>Unlifted <a>concurrently</a>.\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/stack/docs/Stack-Prelude.html#v:concurrently'><s0>concurrently</s0></a> ∷ MonadUnliftIO m ⇒ m a → m b → m (a, b)</span><div class='hoogle-doc'>Unlifted <a>concurrently</a>.\n",
"</div>\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/yesod-websockets/docs/Yesod-WebSockets.html#v:concurrently'><s0>concurrently</s0></a> ∷ MonadUnliftIO m ⇒ m a → m b → m (a, b)</span><div class='hoogle-doc'>Unlifted <a>concurrently</a>.\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/yesod-websockets/docs/Yesod-WebSockets.html#v:concurrently'><s0>concurrently</s0></a> ∷ MonadUnliftIO m ⇒ m a → m b → m (a, b)</span><div class='hoogle-doc'>Unlifted <a>concurrently</a>.\n",
...
@@ -2192,6 +2231,7 @@
...
@@ -2192,6 +2231,7 @@
"</div>\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/EdisonCore/docs/Data-Edison-Seq-Defaults.html#v:zipUsingLview'><s0>zipUsingLview</s0></a> ∷ Sequence s ⇒ s a → s b → s (a, b)</span><div class='hoogle-doc'></div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/EdisonCore/docs/Data-Edison-Seq-Defaults.html#v:zipUsingLview'><s0>zipUsingLview</s0></a> ∷ Sequence s ⇒ s a → s b → s (a, b)</span><div class='hoogle-doc'></div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/EdisonCore/docs/Data-Edison-Seq-Defaults.html#v:zipUsingLists'><s0>zipUsingLists</s0></a> ∷ Sequence s ⇒ s a → s b → s (a, b)</span><div class='hoogle-doc'></div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/EdisonCore/docs/Data-Edison-Seq-Defaults.html#v:zipUsingLists'><s0>zipUsingLists</s0></a> ∷ Sequence s ⇒ s a → s b → s (a, b)</span><div class='hoogle-doc'></div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/adjunctions/docs/Data-Functor-Rep.html#v:mzipRep'><s0>mzipRep</s0></a> ∷ Representable f ⇒ f a → f b → f (a, b)</span><div class='hoogle-doc'></div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/concurrency/docs/Control-Concurrent-Classy-Async.html#v:concurrently'><s0>concurrently</s0></a> ∷ MonadConc m ⇒ m a → m b → m (a, b)</span><div class='hoogle-doc'>Run two <tt>MonadConc</tt> actions concurrently, and return both\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/concurrency/docs/Control-Concurrent-Classy-Async.html#v:concurrently'><s0>concurrently</s0></a> ∷ MonadConc m ⇒ m a → m b → m (a, b)</span><div class='hoogle-doc'>Run two <tt>MonadConc</tt> actions concurrently, and return both\n",
"results. If either action throws an exception at any time, then the\n",
"results. If either action throws an exception at any time, then the\n",
"other action is <a>cancel</a>led, and the exception is re-thrown by\n",
"other action is <a>cancel</a>led, and the exception is re-thrown by\n",
...
@@ -2204,35 +2244,6 @@
...
@@ -2204,35 +2244,6 @@
"waitBoth a b\n",
"waitBoth a b\n",
"</pre>\n",
"</pre>\n",
"</div>\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/adjunctions/docs/Data-Functor-Rep.html#v:mzipRep'><s0>mzipRep</s0></a> ∷ Representable f ⇒ f a → f b → f (a, b)</span><div class='hoogle-doc'></div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-HigherKinded-Class.html#v:box'><s0>box</s0></a> ∷ Graph g ⇒ g a → g b → g (a, b)</span><div class='hoogle-doc'>Compute the <i>Cartesian product</i> of graphs. Complexity: <i>O(s1 *\n",
"s2)</i> time, memory and size, where <i>s1</i> and <i>s2</i> are the\n",
"Up to an isomorphism between the resulting vertex types, this\n",
"operation is <i>commutative</i>, <i>associative</i>,\n",
"<i>distributes</i> over <a>overlay</a>, has singleton graphs as\n",
"<i>identities</i> and <a>empty</a> as the <i>annihilating zero</i>.\n",
"Below <tt>~~</tt> stands for the equality up to an isomorphism, e.g.\n",
"<tt>(x, ()) ~~ x</tt>.\n",
"\n",
"<pre>\n",
"box x y ~~ box y x\n",
"box x (box y z) ~~ box (box x y) z\n",
"box x (<a>overlay</a> y z) == <a>overlay</a> (box x y) (box x z)\n",
"box x (<a>vertex</a> ()) ~~ x\n",
"box x <a>empty</a> ~~ <a>empty</a>\n",
"<a>vertexCount</a> (box x y) == <a>vertexCount</a> x * <a>vertexCount</a> y\n",
"<tt>edgeCount</tt> (box x y) <= <a>vertexCount</a> x * <tt>edgeCount</tt> y + <tt>edgeCount</tt> x * <a>vertexCount</a> y\n",
"</pre>\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/contravariant/docs/Data-Functor-Contravariant-Divisible.html#v:divided'><s0>divided</s0></a> ∷ Divisible f ⇒ f a → f b → f (a, b)</span><div class='hoogle-doc'><pre>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/contravariant/docs/Data-Functor-Contravariant-Divisible.html#v:divided'><s0>divided</s0></a> ∷ Divisible f ⇒ f a → f b → f (a, b)</span><div class='hoogle-doc'><pre>\n",
"<a>divided</a> = <a>divide</a> <a>id</a>\n",
"<a>divided</a> = <a>divide</a> <a>id</a>\n",
"</pre>\n",
"</pre>\n",
...
@@ -2308,6 +2319,13 @@
...
@@ -2308,6 +2319,13 @@
"</div>\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/rebase/docs/Rebase-Prelude.html#v:contrazip2'><s0>contrazip2</s0></a> ∷ Divisible f ⇒ f a1 → f a2 → f (a1, a2)</span><div class='hoogle-doc'></div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/rebase/docs/Rebase-Prelude.html#v:contrazip2'><s0>contrazip2</s0></a> ∷ Divisible f ⇒ f a1 → f a2 → f (a1, a2)</span><div class='hoogle-doc'></div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/contravariant-extras/docs/Contravariant-Extras-Contrazip.html#v:contrazip2'><s0>contrazip2</s0></a> ∷ ∀ f a1 a2 . Divisible f ⇒ f a1 → f a2 → f (a1, a2)</span><div class='hoogle-doc'></div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/contravariant-extras/docs/Contravariant-Extras-Contrazip.html#v:contrazip2'><s0>contrazip2</s0></a> ∷ ∀ f a1 a2 . Divisible f ⇒ f a1 → f a2 → f (a1, a2)</span><div class='hoogle-doc'></div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/vector/docs/Data-Vector-Generic.html#v:zip'><s0>zip</s0></a> ∷ (Vector v a, Vector v b, Vector v (a, b)) ⇒ v a → v b → v (a, b)</span><div class='hoogle-doc'><i>O(min(m,n))</i> Zip two vectors\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/statistics/docs/Statistics-Sample.html#v:pair'><s0>pair</s0></a> ∷ (Vector v a, Vector v b, Vector v (a, b)) ⇒ v a → v b → v (a, b)</span><div class='hoogle-doc'>Pair two samples. It's like <a>zip</a> but requires that both samples\n",
"have equal size.\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/rio/docs/RIO-Vector.html#v:zip'><s0>zip</s0></a> ∷ (Vector v a, Vector v b, Vector v (a, b)) ⇒ v a → v b → v (a, b)</span><div class='hoogle-doc'><i>O(min(m,n))</i> Zip two vectors\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/size-based/docs/Control-Sized.html#v:pair'><s0>pair</s0></a> ∷ Sized f ⇒ f a → f b → f (a, b)</span><div class='hoogle-doc'>Default: <tt>pair a b = (,) <a>$</a> a <a>*</a> b</tt>.\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/size-based/docs/Control-Sized.html#v:pair'><s0>pair</s0></a> ∷ Sized f ⇒ f a → f b → f (a, b)</span><div class='hoogle-doc'>Default: <tt>pair a b = (,) <a>$</a> a <a>*</a> b</tt>.\n",
"</div>\n",
"</div>\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/bytestring/docs/Data-ByteString-Builder-Prim.html#v:-62--42--60-'>(<s0>>*<</s0>)</a> ∷ Monoidal f ⇒ f a → f b → f (a, b)</span><div class='hoogle-doc'>A pairing/concatenation operator for builder primitives, both bounded\n",
"<span class='hoogle-name'><a target='_blank' href='https://hackage.haskell.org/package/bytestring/docs/Data-ByteString-Builder-Prim.html#v:-62--42--60-'>(<s0>>*<</s0>)</a> ∷ Monoidal f ⇒ f a → f b → f (a, b)</span><div class='hoogle-doc'>A pairing/concatenation operator for builder primitives, both bounded\n",