diff --git a/notebooks/IHaskell.ipynb b/notebooks/IHaskell.ipynb
index b758999b..2e2fa9b5 100644
--- a/notebooks/IHaskell.ipynb
+++ b/notebooks/IHaskell.ipynb
@@ -1980,16 +1980,6 @@
"part of the tuple exponentially more frequently. This mainly exists as\n",
"a specification to test against.\n",
"\n",
- "zip ∷ () ⇒ [a] → [b] → [(a, b)]
zip takes two lists and returns a list of corresponding pairs.\n",
+ "
zip ∷ () ⇒ [a] → [b] → [(a, b)]zip 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",
"discarded.\n",
"\n",
@@ -2021,25 +2011,14 @@
"zip [] _|_ = []\n",
"\n",
"
\n",
- "
zip ∷ () ⇒ [a] → [b] → [(a, b)]zip takes two lists and returns a list of corresponding pairs.\n",
- "\n",
- "
\n",
- "zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')]\n",
- "
\n",
- "\n",
+ "
zip ∷ () ⇒ [a] → [b] → [(a, b)]zip 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",
- "discarded:\n",
- "\n",
- "
\n",
- "zip [1] ['a', 'b'] = [(1, 'a')]\n",
- "zip [1, 2] ['a'] = [(1, 'a')]\n",
- "
\n",
+ "discarded.\n",
"\n",
"
zip is right-lazy:\n",
"\n",
"
\n",
"zip [] _|_ = []\n",
- "zip _|_ [] = _|_\n",
"
\n",
"
\n",
"
zip ∷ [a] → [b] → [(a, b)]\n",
@@ -2086,6 +2065,27 @@
"zip [] _|_ = []\n",
"\n",
"
\n",
+ "
zip ∷ () ⇒ [a] → [b] → [(a, b)]zip takes two lists and returns a list of corresponding pairs.\n",
+ "\n",
+ "
\n",
+ "zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')]\n",
+ "
\n",
+ "\n",
+ "If one input list is short, excess elements of the longer list are\n",
+ "discarded:\n",
+ "\n",
+ "
\n",
+ "zip [1] ['a', 'b'] = [(1, 'a')]\n",
+ "zip [1, 2] ['a'] = [(1, 'a')]\n",
+ "
\n",
+ "\n",
+ "
zip is right-lazy:\n",
+ "\n",
+ "
\n",
+ "zip [] _|_ = []\n",
+ "zip _|_ [] = _|_\n",
+ "
\n",
+ "
\n",
"
zip ∷ () ⇒ [a] → [b] → [(a, b)]zip takes two lists and returns a list of corresponding pairs.\n",
"\n",
"
\n",
@@ -2107,6 +2107,27 @@
"zip _|_ [] = _|_\n",
"
\n",
"
\n",
+ "
zip ∷ () ⇒ [a] → [b] → [(a, b)]zip takes two lists and returns a list of corresponding pairs.\n",
+ "\n",
+ "
\n",
+ "zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')]\n",
+ "
\n",
+ "\n",
+ "If one input list is short, excess elements of the longer list are\n",
+ "discarded:\n",
+ "\n",
+ "
\n",
+ "zip [1] ['a', 'b'] = [(1, 'a')]\n",
+ "zip [1, 2] ['a'] = [(1, 'a')]\n",
+ "
\n",
+ "\n",
+ "
zip is right-lazy:\n",
+ "\n",
+ "
\n",
+ "zip [] _|_ = []\n",
+ "zip _|_ [] = _|_\n",
+ "
\n",
+ "
\n",
"
zip ∷ () ⇒ [a] → [b] → [(a, b)]zip 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",
"discarded.\n",
@@ -2127,27 +2148,6 @@
"zip [] _|_ = []\n",
"\n",
"
\n",
- "
zip ∷ () ⇒ [a] → [b] → [(a, b)]zip takes two lists and returns a list of corresponding pairs.\n",
- "\n",
- "
\n",
- "zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')]\n",
- "
\n",
- "\n",
- "If one input list is short, excess elements of the longer list are\n",
- "discarded:\n",
- "\n",
- "
\n",
- "zip [1] ['a', 'b'] = [(1, 'a')]\n",
- "zip [1, 2] ['a'] = [(1, 'a')]\n",
- "
\n",
- "\n",
- "
zip is right-lazy:\n",
- "\n",
- "
\n",
- "zip [] _|_ = []\n",
- "zip _|_ [] = _|_\n",
- "
\n",
- "
\n",
"
zipLazy ∷ [a] → [b] → [(a, b)]zipLazy is a kind of
zip that is lazy in the second list\n",
"(observe the ~)\n",
"
\n",
@@ -2192,7 +2192,6 @@
"
\n",
"Compute the
Cartesian product of graphs. Complexity:
O(s1 *\n",
"s2) time, memory and size, where
s1 and
s2 are the\n",
"sizes of the given graphs.\n",
@@ -2622,18 +2622,6 @@
"a specification to test against.\n",
"\n",
"
zip :: () => [a] -> [b] -> [(a, b)]\n",
- "URL: https://hackage.haskell.org/package/llvm-hs-pure/docs/LLVM-Prelude.html#v:zip\n",
- "
zip 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",
- "discarded.\n",
- "\n",
- "
zip is right-lazy:\n",
- "\n",
- "
\n",
- "zip [] _|_ = []\n",
- "
\n",
- "\n",
- "
zip :: () => [a] -> [b] -> [(a, b)]\n",
"URL: https://hackage.haskell.org/package/universum/docs/Universum-List-Reexport.html#v:zip\n",
"
zip takes two lists and returns a list of corresponding pairs.\n",
"\n",
@@ -2657,7 +2645,7 @@
"\n",
"\n",
"
zip :: () => [a] -> [b] -> [(a, b)]\n",
- "URL: https://hackage.haskell.org/package/haxl/docs/Haxl-Prelude.html#v:zip\n",
+ "URL: https://hackage.haskell.org/package/llvm-hs-pure/docs/LLVM-Prelude.html#v:zip\n",
"
zip 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",
"discarded.\n",
@@ -2669,26 +2657,15 @@
"\n",
"\n",
"
zip :: () => [a] -> [b] -> [(a, b)]\n",
- "URL: https://hackage.haskell.org/package/mixed-types-num/docs/Numeric-MixedTypes-PreludeHiding.html#v:zip\n",
+ "URL: https://hackage.haskell.org/package/haxl/docs/Haxl-Prelude.html#v:zip\n",
"
zip takes two lists and returns a list of corresponding pairs.\n",
- "\n",
- "
\n",
- "zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')]\n",
- "
\n",
- "\n",
"If one input list is short, excess elements of the longer list are\n",
- "discarded:\n",
- "\n",
- "
\n",
- "zip [1] ['a', 'b'] = [(1, 'a')]\n",
- "zip [1, 2] ['a'] = [(1, 'a')]\n",
- "
\n",
+ "discarded.\n",
"\n",
"
zip is right-lazy:\n",
"\n",
"
\n",
"zip [] _|_ = []\n",
- "zip _|_ [] = _|_\n",
"
\n",
"\n",
"
zip :: [a] -> [b] -> [(a, b)]\n",
@@ -2748,6 +2725,29 @@
"\n",
"\n",
"
zip :: () => [a] -> [b] -> [(a, b)]\n",
+ "URL: https://hackage.haskell.org/package/mixed-types-num/docs/Numeric-MixedTypes-PreludeHiding.html#v:zip\n",
+ "
zip takes two lists and returns a list of corresponding pairs.\n",
+ "\n",
+ "
\n",
+ "zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')]\n",
+ "
\n",
+ "\n",
+ "If one input list is short, excess elements of the longer list are\n",
+ "discarded:\n",
+ "\n",
+ "
\n",
+ "zip [1] ['a', 'b'] = [(1, 'a')]\n",
+ "zip [1, 2] ['a'] = [(1, 'a')]\n",
+ "
\n",
+ "\n",
+ "
zip is right-lazy:\n",
+ "\n",
+ "
\n",
+ "zip [] _|_ = []\n",
+ "zip _|_ [] = _|_\n",
+ "
\n",
+ "\n",
+ "
zip :: () => [a] -> [b] -> [(a, b)]\n",
"URL: https://hackage.haskell.org/package/intro/docs/Intro.html#v:zip\n",
"
zip takes two lists and returns a list of corresponding pairs.\n",
"\n",
@@ -2771,6 +2771,29 @@
"\n",
"\n",
"
zip :: () => [a] -> [b] -> [(a, b)]\n",
+ "URL: https://hackage.haskell.org/package/relude/docs/Relude-List-Reexport.html#v:zip\n",
+ "
zip takes two lists and returns a list of corresponding pairs.\n",
+ "\n",
+ "
\n",
+ "zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')]\n",
+ "
\n",
+ "\n",
+ "If one input list is short, excess elements of the longer list are\n",
+ "discarded:\n",
+ "\n",
+ "
\n",
+ "zip [1] ['a', 'b'] = [(1, 'a')]\n",
+ "zip [1, 2] ['a'] = [(1, 'a')]\n",
+ "
\n",
+ "\n",
+ "
zip is right-lazy:\n",
+ "\n",
+ "
\n",
+ "zip [] _|_ = []\n",
+ "zip _|_ [] = _|_\n",
+ "
\n",
+ "\n",
+ "
zip :: () => [a] -> [b] -> [(a, b)]\n",
"URL: https://hackage.haskell.org/package/yesod-paginator/docs/Yesod-Paginator-Prelude.html#v:zip\n",
"
zip 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",
@@ -2794,29 +2817,6 @@
"zip [] _|_ = []\n",
"\n",
"\n",
- "
zip :: () => [a] -> [b] -> [(a, b)]\n",
- "URL: https://hackage.haskell.org/package/relude/docs/Relude-List-Reexport.html#v:zip\n",
- "
zip takes two lists and returns a list of corresponding pairs.\n",
- "\n",
- "
\n",
- "zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')]\n",
- "
\n",
- "\n",
- "If one input list is short, excess elements of the longer list are\n",
- "discarded:\n",
- "\n",
- "
\n",
- "zip [1] ['a', 'b'] = [(1, 'a')]\n",
- "zip [1, 2] ['a'] = [(1, 'a')]\n",
- "
\n",
- "\n",
- "
zip is right-lazy:\n",
- "\n",
- "
\n",
- "zip [] _|_ = []\n",
- "zip _|_ [] = _|_\n",
- "
\n",
- "\n",
"
zipLazy :: [a] -> [b] -> [(a, b)]\n",
"URL: https://hackage.haskell.org/package/ghc/docs/Util.html#v:zipLazy\n",
"
zipLazy is a kind of
zip that is lazy in the second list\n",
@@ -2887,9 +2887,6 @@
"
zipUsingLists :: Sequence s => s a -> s b -> s (a, b)\n",
"URL: https://hackage.haskell.org/package/EdisonCore/docs/Data-Edison-Seq-Defaults.html#v:zipUsingLists\n",
"\n",
- "
mzipRep :: Representable f => f a -> f b -> f (a, b)\n",
- "URL: https://hackage.haskell.org/package/adjunctions/docs/Data-Functor-Rep.html#v:mzipRep\n",
- "\n",
"
concurrently :: MonadConc m => m a -> m b -> m (a, b)\n",
"URL: https://hackage.haskell.org/package/concurrency/docs/Control-Concurrent-Classy-Async.html#v:concurrently\n",
"Run two
MonadConc actions concurrently, and return both\n",
@@ -2904,6 +2901,9 @@
"waitBoth a b\n",
"\n",
"\n",
+ "
mzipRep :: Representable f => f a -> f b -> f (a, b)\n",
+ "URL: https://hackage.haskell.org/package/adjunctions/docs/Data-Functor-Rep.html#v:mzipRep\n",
+ "\n",
"
box :: Graph g => g a -> g b -> g (a, b)\n",
"URL: https://hackage.haskell.org/package/algebraic-graphs/docs/Algebra-Graph-HigherKinded-Class.html#v:box\n",
"Compute the
Cartesian product of graphs. Complexity:
O(s1 *\n",