diff --git a/notebooks/IHaskell.ipynb b/notebooks/IHaskell.ipynb index 92cde41d..476b35af 100644 --- a/notebooks/IHaskell.ipynb +++ b/notebooks/IHaskell.ipynb @@ -1266,7 +1266,7 @@ "outputs": [ { "data": { - "image/png": "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" + "image/png": "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" }, "metadata": {}, "output_type": "display_data" @@ -1871,27 +1871,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", "zip ∷ () ⇒ [a] → [b] → [(a, b)]
zip takes two lists and returns a list of corresponding pairs.\n", "\n", "
\n",
@@ -1913,27 +1892,30 @@
        "zip _|_ [] = _|_\n",
        "
\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", + "\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", + "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", - "(+*+) ∷ [a] → [b] → [(a, b)]
Slightly unfair 2-way Cartesian product: given two (possibly infinite)\n", - "lists, produce a single list such that whenever v and\n", - "w have finite indices in the input lists, (v,w) has\n", - "finite index in the output list. Lower indices occur as the\n", - "fst part of the tuple more frequently, but not exponentially\n", - "so.\n", - "
\n", - "unfairCartesianProduct ∷ [a] → [b] → [(a, b)]
Very unfair 2-way Cartesian product: same guarantee as the slightly\n", - "unfair one, except that lower indices may occur as the fst\n", - "part of the tuple exponentially more frequently. This mainly exists as\n", - "a specification to test against.\n", + "(+*+) ∷ [a] → [b] → [(a, b)]
\n",
+       "cartesianProduct (,)\n",
+       "
\n", "
\n", "zip ∷ () ⇒ [a] → [b] → [(a, b)]
zip takes two lists and returns a list of corresponding pairs.\n", "\n", @@ -1956,6 +1938,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",
@@ -2041,24 +2044,46 @@
        "zip _|_ [] = _|_\n",
        "
\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", + "\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", + "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", + "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", + "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", @@ -2083,13 +2108,24 @@ "\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", + "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", @@ -2162,6 +2198,7 @@ "
\n", "concurrently ∷ MonadUnliftIO m ⇒ m a → m b → m (a, b)
Unlifted concurrently.\n", "
\n", + "mzipRep ∷ Representable f ⇒ f a → f b → f (a, b)
\n", "concurrently ∷ MonadConc m ⇒ m a → m b → m (a, b)
Run two MonadConc actions concurrently, and return both\n", "results. If either action throws an exception at any time, then the\n", "other action is cancelled, and the exception is re-thrown by\n", @@ -2174,7 +2211,6 @@ "waitBoth a b\n", "\n", "
\n", - "mzipRep ∷ Representable f ⇒ f a → f b → f (a, b)
\n", "divided ∷ Divisible f ⇒ f a → f b → f (a, b)
\n",
        "divided = divide id\n",
        "
\n", @@ -2253,6 +2289,13 @@ "zip ∷ List l ⇒ l a → l b → l (a, b)
\n", "pair ∷ Sized f ⇒ f a → f b → f (a, b)
Default: pair a b = (,) $ a * b.\n", "
\n", + "zip ∷ (Vector v a, Vector v b, Vector v (a, b)) ⇒ v a → v b → v (a, b)
O(min(m,n)) Zip two vectors\n", + "
\n", + "pair ∷ (Vector v a, Vector v b, Vector v (a, b)) ⇒ v a → v b → v (a, b)
Pair two samples. It's like zip but requires that both samples\n", + "have equal size.\n", + "
\n", + "zip ∷ (Vector v a, Vector v b, Vector v (a, b)) ⇒ v a → v b → v (a, b)
O(min(m,n)) Zip two vectors\n", + "
\n", "zip ∷ Zip f ⇒ f a → f b → f (a, b)
\n", "zip ∷ Zip f ⇒ f a → f b → f (a, b)
\n", "zip ∷ Zip f ⇒ f a → f b → f (a, b)
\n", @@ -2276,13 +2319,6 @@ "(>*<) ∷ Monoidal f ⇒ f a → f b → f (a, b)
Merge two functors into a tuple, analogous to liftA2\n", "(,). (Sometimes known as **.)\n", "
\n", - "zip ∷ (Vector v a, Vector v b, Vector v (a, b)) ⇒ v a → v b → v (a, b)
O(min(m,n)) Zip two vectors\n", - "
\n", - "pair ∷ (Vector v a, Vector v b, Vector v (a, b)) ⇒ v a → v b → v (a, b)
Pair two samples. It's like zip but requires that both samples\n", - "have equal size.\n", - "
\n", - "zip ∷ (Vector v a, Vector v b, Vector v (a, b)) ⇒ v a → v b → v (a, b)
O(min(m,n)) Zip two vectors\n", - "
\n", "mzip ∷ MonadZip m ⇒ m a → m b → m (a, b)
\n", "projectZip ∷ ProductIsoApplicative p ⇒ p a → p b → p (a, b)
Zipping projections.\n", "
\n", @@ -2519,29 +2555,6 @@ "\n", "\n", "zip :: () => [a] -> [b] -> [(a, b)]\n", - "URL: https://hackage.haskell.org/package/rio/docs/RIO.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/rio/docs/RIO-List.html#v:zip\n", "zip takes two lists and returns a list of corresponding pairs.\n", "\n", @@ -2565,32 +2578,33 @@ "\n", "\n", "zip :: () => [a] -> [b] -> [(a, b)]\n", - "URL: https://hackage.haskell.org/package/rebase/docs/Rebase-Prelude.html#v:zip\n", + "URL: https://hackage.haskell.org/package/rio/docs/RIO-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", + "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", "(+*+) :: [a] -> [b] -> [(a, b)]\n", "URL: https://hackage.haskell.org/package/universe-base/docs/Data-Universe-Helpers.html#v:-43--42--43-\n", - "Slightly unfair 2-way Cartesian product: given two (possibly infinite)\n", - "lists, produce a single list such that whenever v and\n", - "w have finite indices in the input lists, (v,w) has\n", - "finite index in the output list. Lower indices occur as the\n", - "fst part of the tuple more frequently, but not exponentially\n", - "so.\n", - "\n", - "unfairCartesianProduct :: [a] -> [b] -> [(a, b)]\n", - "URL: https://hackage.haskell.org/package/universe-base/docs/Data-Universe-Helpers.html#v:unfairCartesianProduct\n", - "Very unfair 2-way Cartesian product: same guarantee as the slightly\n", - "unfair one, except that lower indices may occur as the fst\n", - "part of the tuple exponentially more frequently. This mainly exists as\n", - "a specification to test against.\n", + "
\n",
+       "cartesianProduct (,)\n",
+       "
\n", "\n", "zip :: () => [a] -> [b] -> [(a, b)]\n", "URL: https://hackage.haskell.org/package/universum/docs/Universum-List-Reexport.html#v:zip\n", @@ -2616,6 +2630,29 @@ "\n", "\n", "zip :: () => [a] -> [b] -> [(a, b)]\n", + "URL: https://hackage.haskell.org/package/rebase/docs/Rebase-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", + "\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/llvm-hs-pure/docs/LLVM-Prelude.html#v:zip\n", "zip takes two lists and returns a list of corresponding pairs.\n", "\n", @@ -2715,27 +2752,49 @@ "\n", "\n", "zip :: () => [a] -> [b] -> [(a, b)]\n", - "URL: https://hackage.haskell.org/package/LambdaHack/docs/Game-LambdaHack-Common-Prelude.html#v:zip\n", + "URL: https://hackage.haskell.org/package/LambdaHack/docs/Game-LambdaHack-Core-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", + "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/LambdaHack/docs/Game-LambdaHack-Common-Prelude.html#v:zip\n", + "URL: https://hackage.haskell.org/package/LambdaHack/docs/Game-LambdaHack-Core-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", + "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", @@ -2764,13 +2823,24 @@ "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", + "\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", + "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", @@ -2865,6 +2935,9 @@ "URL: https://hackage.haskell.org/package/yesod-websockets/docs/Yesod-WebSockets.html#v:concurrently\n", "Unlifted concurrently.\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", @@ -2879,9 +2952,6 @@ "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", "divided :: Divisible f => f a -> f b -> f (a, b)\n", "URL: https://hackage.haskell.org/package/contravariant/docs/Data-Functor-Contravariant-Divisible.html#v:divided\n", "
\n",
@@ -2978,6 +3048,19 @@
        "URL: https://hackage.haskell.org/package/size-based/docs/Control-Sized.html#v:pair\n",
        "Default: pair a b = (,) $ a * b.\n",
        "\n",
+       "zip :: (Vector v a, Vector v b, Vector v (a, b)) => v a -> v b -> v (a, b)\n",
+       "URL: https://hackage.haskell.org/package/vector/docs/Data-Vector-Generic.html#v:zip\n",
+       "O(min(m,n)) Zip two vectors\n",
+       "\n",
+       "pair :: (Vector v a, Vector v b, Vector v (a, b)) => v a -> v b -> v (a, b)\n",
+       "URL: https://hackage.haskell.org/package/statistics/docs/Statistics-Sample.html#v:pair\n",
+       "Pair two samples. It's like zip but requires that both samples\n",
+       "have equal size.\n",
+       "\n",
+       "zip :: (Vector v a, Vector v b, Vector v (a, b)) => v a -> v b -> v (a, b)\n",
+       "URL: https://hackage.haskell.org/package/rio/docs/RIO-Vector.html#v:zip\n",
+       "O(min(m,n)) Zip two vectors\n",
+       "\n",
        "zip :: Zip f => f a -> f b -> f (a, b)\n",
        "URL: https://hackage.haskell.org/package/classy-prelude/docs/ClassyPrelude.html#v:zip\n",
        "\n",
@@ -3013,19 +3096,6 @@
        "Merge two functors into a tuple, analogous to liftA2\n",
        "(,). (Sometimes known as **.)\n",
        "\n",
-       "zip :: (Vector v a, Vector v b, Vector v (a, b)) => v a -> v b -> v (a, b)\n",
-       "URL: https://hackage.haskell.org/package/vector/docs/Data-Vector-Generic.html#v:zip\n",
-       "O(min(m,n)) Zip two vectors\n",
-       "\n",
-       "pair :: (Vector v a, Vector v b, Vector v (a, b)) => v a -> v b -> v (a, b)\n",
-       "URL: https://hackage.haskell.org/package/statistics/docs/Statistics-Sample.html#v:pair\n",
-       "Pair two samples. It's like zip but requires that both samples\n",
-       "have equal size.\n",
-       "\n",
-       "zip :: (Vector v a, Vector v b, Vector v (a, b)) => v a -> v b -> v (a, b)\n",
-       "URL: https://hackage.haskell.org/package/rio/docs/RIO-Vector.html#v:zip\n",
-       "O(min(m,n)) Zip two vectors\n",
-       "\n",
        "mzip :: MonadZip m => m a -> m b -> m (a, b)\n",
        "URL: https://hackage.haskell.org/package/base/docs/Control-Monad-Zip.html#v:mzip\n",
        "\n",