Bodigrim pushed to branch wip/zip-them-all at Glasgow Haskell Compiler / GHC
Commits:
-
378a445c
by Andrew Lelechenko at 2026-06-06T14:58:48+02:00
6 changed files:
- compiler/GHC/Data/List/NonEmpty.hs
- libraries/base/changelog.md
- libraries/base/src/Data/List/NonEmpty.hs
- testsuite/tests/interface-stability/base-exports.stdout
- testsuite/tests/interface-stability/base-exports.stdout-javascript-unknown-ghcjs
- testsuite/tests/interface-stability/base-exports.stdout-mingw32
Changes:
| 1 | +{-# OPTIONS_GHC -Wno-dodgy-imports #-}
|
|
| 1 | 2 | module GHC.Data.List.NonEmpty (module Data.List.NonEmpty, module GHC.Data.List.NonEmpty, toList) where
|
| 2 | 3 | |
| 3 | 4 | import Prelude (Bool, (.))
|
| 4 | 5 | import Control.Applicative
|
| 5 | 6 | import qualified Control.Monad as List (zipWithM)
|
| 6 | 7 | import Data.Foldable (Foldable (toList))
|
| 7 | -import Data.List.NonEmpty hiding (toList, unzip)
|
|
| 8 | +import Data.List.NonEmpty hiding (toList, unzip, unzip3)
|
|
| 8 | 9 | import qualified Data.List as List
|
| 9 | 10 | import qualified GHC.Data.List as List
|
| 10 | 11 |
| ... | ... | @@ -3,6 +3,7 @@ |
| 3 | 3 | ## 4.24.0.0 *TBA*
|
| 4 | 4 | * Add `Bounded` instances for `Double`, `Float`, `CDouble` and `CFloat`. ([CLC proposal #402](https://github.com/haskell/core-libraries-committee/issues/402))
|
| 5 | 5 | * Ensure that `Data.List.elem` and `notElem` can be specialized even when no list fusion happens. ([CLC proposal #412)(https://github.com/haskell/core-libraries-committee/issues/412))
|
| 6 | + * Add `Data.List.NonEmpty.{zip{3..7},zipWith{3..7},unzip{3..7}} ([CLC proposal #409)(https://github.com/haskell/core-libraries-committee/issues/409))
|
|
| 6 | 7 | |
| 7 | 8 | ## 4.23.0.0 *TBA*
|
| 8 | 9 | * Add `System.IO.hGetNewlineMode`. ([CLC proposal #370](https://github.com/haskell/core-libraries-committee/issues/370))
|
| ... | ... | @@ -99,10 +99,29 @@ module Data.List.NonEmpty ( |
| 99 | 99 | , nubOrdBy -- :: (a -> a -> Ordering) -> NonEmpty a -> NonEmpty a
|
| 100 | 100 | -- * Indexing streams
|
| 101 | 101 | , (!!) -- :: NonEmpty a -> Int -> a
|
| 102 | + |
|
| 102 | 103 | -- * Zipping and unzipping streams
|
| 103 | - , zip -- :: NonEmpty a -> NonEmpty b -> NonEmpty (a,b)
|
|
| 104 | - , zipWith -- :: (a -> b -> c) -> NonEmpty a -> NonEmpty b -> NonEmpty c
|
|
| 105 | - , unzip -- :: Functor f => f (a,b) -> (f a, f b)
|
|
| 104 | + , zip
|
|
| 105 | + , zip3
|
|
| 106 | + , zip4
|
|
| 107 | + , zip5
|
|
| 108 | + , zip6
|
|
| 109 | + , zip7
|
|
| 110 | + |
|
| 111 | + , zipWith
|
|
| 112 | + , zipWith3
|
|
| 113 | + , zipWith4
|
|
| 114 | + , zipWith5
|
|
| 115 | + , zipWith6
|
|
| 116 | + , zipWith7
|
|
| 117 | + |
|
| 118 | + , unzip
|
|
| 119 | + , unzip3
|
|
| 120 | + , unzip4
|
|
| 121 | + , unzip5
|
|
| 122 | + , unzip6
|
|
| 123 | + , unzip7
|
|
| 124 | + |
|
| 106 | 125 | -- * Converting to and from a list
|
| 107 | 126 | , fromList -- :: [a] -> NonEmpty a
|
| 108 | 127 | , toList -- :: NonEmpty a -> [a]
|
| ... | ... | @@ -116,7 +135,7 @@ import Prelude hiding (break, cycle, drop, dropWhile, |
| 116 | 135 | last, length, map, repeat, reverse,
|
| 117 | 136 | scanl, scanl1, scanr, scanr1, span,
|
| 118 | 137 | splitAt, tail, take, takeWhile,
|
| 119 | - unzip, zip, zipWith, (!!), Applicative(..))
|
|
| 138 | + unzip, unzip3, zip, zip3, zipWith, zipWith3, (!!), Applicative(..))
|
|
| 120 | 139 | import qualified Prelude
|
| 121 | 140 | |
| 122 | 141 | import Control.Applicative (Applicative (..), Alternative (many))
|
| ... | ... | @@ -560,12 +579,97 @@ isPrefixOf (y:ys) (x :| xs) = (y == x) && List.isPrefixOf ys xs |
| 560 | 579 | | otherwise = error "NonEmpty.!! negative index"
|
| 561 | 580 | infixl 9 !!
|
| 562 | 581 | |
| 582 | +-- | The 'zip3' function takes three streams and returns a stream of
|
|
| 583 | +-- corresponding triples.
|
|
| 584 | +zip3 :: NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty (a, b, c)
|
|
| 585 | +zip3 (x :| xs) (y :| ys) (z :| zs) = (x, y, z) :| List.zip3 xs ys zs
|
|
| 586 | + |
|
| 587 | +-- | The 'zip4' function takes four streams and returns a stream of
|
|
| 588 | +-- corresponding quadruples.
|
|
| 589 | +zip4 :: NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty (a, b, c, d)
|
|
| 590 | +zip4 (x :| xs) (y :| ys) (z :| zs) (t :| ts) = (x, y, z, t) :| List.zip4 xs ys zs ts
|
|
| 591 | + |
|
| 592 | +-- | The 'zip5' function takes five streams and returns a stream of
|
|
| 593 | +-- corresponding quintuples.
|
|
| 594 | +zip5 :: NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty (a, b, c, d, e)
|
|
| 595 | +zip5 (x :| xs) (y :| ys) (z :| zs) (t :| ts) (u :| us) = (x, y, z, t, u) :| List.zip5 xs ys zs ts us
|
|
| 596 | + |
|
| 597 | +-- | The 'zip6' function takes six streams and returns a stream of
|
|
| 598 | +-- corresponding sextuples.
|
|
| 599 | +zip6 :: NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty (a, b, c, d, e, f)
|
|
| 600 | +zip6 (x :| xs) (y :| ys) (z :| zs) (t :| ts) (u :| us) (v :| vs) = (x, y, z, t, u, v) :| List.zip6 xs ys zs ts us vs
|
|
| 601 | + |
|
| 602 | +-- | The 'zip7' function takes seven streams and returns a stream of
|
|
| 603 | +-- corresponding septuples.
|
|
| 604 | +zip7 :: NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty (a, b, c, d, e, f, g)
|
|
| 605 | +zip7 (x :| xs) (y :| ys) (z :| zs) (t :| ts) (u :| us) (v :| vs) (w :| ws) = (x, y, z, t, u, v, w) :| List.zip7 xs ys zs ts us vs ws
|
|
| 606 | + |
|
| 607 | +-- | The 'zipWith3' function generalizes 'zip3'. Rather than tupling
|
|
| 608 | +-- the elements, the elements are combined using the function
|
|
| 609 | +-- passed as the first argument.
|
|
| 610 | +zipWith3 :: (a -> b -> c -> d) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d
|
|
| 611 | +zipWith3 f (x :| xs) (y :| ys) (z :| zs) = f x y z :| List.zipWith3 f xs ys zs
|
|
| 612 | + |
|
| 613 | +-- | The 'zipWith4' function generalizes 'zip4'. Rather than tupling
|
|
| 614 | +-- the elements, the elements are combined using the function
|
|
| 615 | +-- passed as the first argument.
|
|
| 616 | +zipWith4 :: (a -> b -> c -> d -> e) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e
|
|
| 617 | +zipWith4 f (x :| xs) (y :| ys) (z :| zs) (t :| ts) = f x y z t :| List.zipWith4 f xs ys zs ts
|
|
| 618 | + |
|
| 619 | +-- | The 'zipWith5' function generalizes 'zip5'. Rather than tupling
|
|
| 620 | +-- the elements, the elements are combined using the function
|
|
| 621 | +-- passed as the first argument.
|
|
| 622 | +zipWith5 :: (a -> b -> c -> d -> e -> f) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f
|
|
| 623 | +zipWith5 f (x :| xs) (y :| ys) (z :| zs) (t :| ts) (u :| us) = f x y z t u :| List.zipWith5 f xs ys zs ts us
|
|
| 624 | + |
|
| 625 | +-- | The 'zipWith6' function generalizes 'zip6'. Rather than tupling
|
|
| 626 | +-- the elements, the elements are combined using the function
|
|
| 627 | +-- passed as the first argument.
|
|
| 628 | +zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g
|
|
| 629 | +zipWith6 f (x :| xs) (y :| ys) (z :| zs) (t :| ts) (u :| us) (v :| vs) = f x y z t u v :| List.zipWith6 f xs ys zs ts us vs
|
|
| 630 | + |
|
| 631 | +-- | The 'zipWith7' function generalizes 'zip7'. Rather than tupling
|
|
| 632 | +-- the elements, the elements are combined using the function
|
|
| 633 | +-- passed as the first argument.
|
|
| 634 | +zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty h
|
|
| 635 | +zipWith7 f (x :| xs) (y :| ys) (z :| zs) (t :| ts) (u :| us) (v :| vs) (w :| ws) = f x y z t u v w :| List.zipWith7 f xs ys zs ts us vs ws
|
|
| 636 | + |
|
| 563 | 637 | -- | The 'unzip' function is the inverse of the 'zip' function.
|
| 564 | 638 | unzip :: NonEmpty (a, b) -> (NonEmpty a, NonEmpty b)
|
| 565 | 639 | unzip ((a, b) :| asbs) = (a :| as, b :| bs)
|
| 566 | 640 | where
|
| 567 | 641 | (as, bs) = List.unzip asbs
|
| 568 | 642 | |
| 643 | +-- | The 'unzip3' function is the inverse of the 'zip3' function.
|
|
| 644 | +unzip3 :: NonEmpty (a, b, c) -> (NonEmpty a, NonEmpty b, NonEmpty c)
|
|
| 645 | +unzip3 ((a, b, c) :| asbscs) = (a :| as, b :| bs, c :| cs)
|
|
| 646 | + where
|
|
| 647 | + (as, bs, cs) = List.unzip3 asbscs
|
|
| 648 | + |
|
| 649 | +-- | The 'unzip4' function is the inverse of the 'zip4' function.
|
|
| 650 | +unzip4 :: NonEmpty (a, b, c, d) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d)
|
|
| 651 | +unzip4 ((a, b, c, d) :| asbscsds) = (a :| as, b :| bs, c :| cs, d :| ds)
|
|
| 652 | + where
|
|
| 653 | + (as, bs, cs, ds) = List.unzip4 asbscsds
|
|
| 654 | + |
|
| 655 | +-- | The 'unzip5' function is the inverse of the 'zip5' function.
|
|
| 656 | +unzip5 :: NonEmpty (a, b, c, d, e) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e)
|
|
| 657 | +unzip5 ((a, b, c, d, e) :| asbscsdses) = (a :| as, b :| bs, c :| cs, d :| ds, e :| es)
|
|
| 658 | + where
|
|
| 659 | + (as, bs, cs, ds, es) = List.unzip5 asbscsdses
|
|
| 660 | + |
|
| 661 | +-- | The 'unzip6' function is the inverse of the 'zip6' function.
|
|
| 662 | +unzip6 :: NonEmpty (a, b, c, d, e, f) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f)
|
|
| 663 | +unzip6 ((a, b, c, d, e, f) :| asbscsdsesfs) = (a :| as, b :| bs, c :| cs, d :| ds, e :| es, f :| fs)
|
|
| 664 | + where
|
|
| 665 | + (as, bs, cs, ds, es, fs) = List.unzip6 asbscsdsesfs
|
|
| 666 | + |
|
| 667 | +-- | The 'unzip7' function is the inverse of the 'zip7' function.
|
|
| 668 | +unzip7 :: NonEmpty (a, b, c, d, e, f, g) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f, NonEmpty g)
|
|
| 669 | +unzip7 ((a, b, c, d, e, f, g) :| asbscsdsesfsgs) = (a :| as, b :| bs, c :| cs, d :| ds, e :| es, f :| fs, g :| gs)
|
|
| 670 | + where
|
|
| 671 | + (as, bs, cs, ds, es, fs, gs) = List.unzip7 asbscsdsesfsgs
|
|
| 672 | + |
|
| 569 | 673 | -- | The 'nub' function removes duplicate elements from a list. In
|
| 570 | 674 | -- particular, it keeps only the first occurrence of each element.
|
| 571 | 675 | -- (The name 'nub' means \'essence\'.)
|
| ... | ... | @@ -1507,9 +1507,24 @@ module Data.List.NonEmpty where |
| 1507 | 1507 | unfold :: forall a b. (a -> (b, GHC.Internal.Maybe.Maybe a)) -> a -> NonEmpty b
|
| 1508 | 1508 | unfoldr :: forall a b. (a -> (b, GHC.Internal.Maybe.Maybe a)) -> a -> NonEmpty b
|
| 1509 | 1509 | unzip :: forall a b. NonEmpty (a, b) -> (NonEmpty a, NonEmpty b)
|
| 1510 | + unzip3 :: forall a b c. NonEmpty (a, b, c) -> (NonEmpty a, NonEmpty b, NonEmpty c)
|
|
| 1511 | + unzip4 :: forall a b c d. NonEmpty (a, b, c, d) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d)
|
|
| 1512 | + unzip5 :: forall a b c d e. NonEmpty (a, b, c, d, e) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e)
|
|
| 1513 | + unzip6 :: forall a b c d e f. NonEmpty (a, b, c, d, e, f) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f)
|
|
| 1514 | + unzip7 :: forall a b c d e f g. NonEmpty (a, b, c, d, e, f, g) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f, NonEmpty g)
|
|
| 1510 | 1515 | xor :: NonEmpty GHC.Internal.Types.Bool -> GHC.Internal.Types.Bool
|
| 1511 | 1516 | zip :: forall a b. NonEmpty a -> NonEmpty b -> NonEmpty (a, b)
|
| 1517 | + zip3 :: forall a b c. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty (a, b, c)
|
|
| 1518 | + zip4 :: forall a b c d. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty (a, b, c, d)
|
|
| 1519 | + zip5 :: forall a b c d e. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty (a, b, c, d, e)
|
|
| 1520 | + zip6 :: forall a b c d e f. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty (a, b, c, d, e, f)
|
|
| 1521 | + zip7 :: forall a b c d e f g. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty (a, b, c, d, e, f, g)
|
|
| 1512 | 1522 | zipWith :: forall a b c. (a -> b -> c) -> NonEmpty a -> NonEmpty b -> NonEmpty c
|
| 1523 | + zipWith3 :: forall a b c d. (a -> b -> c -> d) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d
|
|
| 1524 | + zipWith4 :: forall a b c d e. (a -> b -> c -> d -> e) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e
|
|
| 1525 | + zipWith5 :: forall a b c d e f. (a -> b -> c -> d -> e -> f) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f
|
|
| 1526 | + zipWith6 :: forall a b c d e f g. (a -> b -> c -> d -> e -> f -> g) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g
|
|
| 1527 | + zipWith7 :: forall a b c d e f g h. (a -> b -> c -> d -> e -> f -> g -> h) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty h
|
|
| 1513 | 1528 | |
| 1514 | 1529 | module Data.Maybe where
|
| 1515 | 1530 | -- Safety: Safe
|
| ... | ... | @@ -1507,9 +1507,24 @@ module Data.List.NonEmpty where |
| 1507 | 1507 | unfold :: forall a b. (a -> (b, GHC.Internal.Maybe.Maybe a)) -> a -> NonEmpty b
|
| 1508 | 1508 | unfoldr :: forall a b. (a -> (b, GHC.Internal.Maybe.Maybe a)) -> a -> NonEmpty b
|
| 1509 | 1509 | unzip :: forall a b. NonEmpty (a, b) -> (NonEmpty a, NonEmpty b)
|
| 1510 | + unzip3 :: forall a b c. NonEmpty (a, b, c) -> (NonEmpty a, NonEmpty b, NonEmpty c)
|
|
| 1511 | + unzip4 :: forall a b c d. NonEmpty (a, b, c, d) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d)
|
|
| 1512 | + unzip5 :: forall a b c d e. NonEmpty (a, b, c, d, e) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e)
|
|
| 1513 | + unzip6 :: forall a b c d e f. NonEmpty (a, b, c, d, e, f) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f)
|
|
| 1514 | + unzip7 :: forall a b c d e f g. NonEmpty (a, b, c, d, e, f, g) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f, NonEmpty g)
|
|
| 1510 | 1515 | xor :: NonEmpty GHC.Internal.Types.Bool -> GHC.Internal.Types.Bool
|
| 1511 | 1516 | zip :: forall a b. NonEmpty a -> NonEmpty b -> NonEmpty (a, b)
|
| 1517 | + zip3 :: forall a b c. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty (a, b, c)
|
|
| 1518 | + zip4 :: forall a b c d. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty (a, b, c, d)
|
|
| 1519 | + zip5 :: forall a b c d e. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty (a, b, c, d, e)
|
|
| 1520 | + zip6 :: forall a b c d e f. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty (a, b, c, d, e, f)
|
|
| 1521 | + zip7 :: forall a b c d e f g. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty (a, b, c, d, e, f, g)
|
|
| 1512 | 1522 | zipWith :: forall a b c. (a -> b -> c) -> NonEmpty a -> NonEmpty b -> NonEmpty c
|
| 1523 | + zipWith3 :: forall a b c d. (a -> b -> c -> d) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d
|
|
| 1524 | + zipWith4 :: forall a b c d e. (a -> b -> c -> d -> e) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e
|
|
| 1525 | + zipWith5 :: forall a b c d e f. (a -> b -> c -> d -> e -> f) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f
|
|
| 1526 | + zipWith6 :: forall a b c d e f g. (a -> b -> c -> d -> e -> f -> g) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g
|
|
| 1527 | + zipWith7 :: forall a b c d e f g h. (a -> b -> c -> d -> e -> f -> g -> h) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty h
|
|
| 1513 | 1528 | |
| 1514 | 1529 | module Data.Maybe where
|
| 1515 | 1530 | -- Safety: Safe
|
| ... | ... | @@ -1507,9 +1507,24 @@ module Data.List.NonEmpty where |
| 1507 | 1507 | unfold :: forall a b. (a -> (b, GHC.Internal.Maybe.Maybe a)) -> a -> NonEmpty b
|
| 1508 | 1508 | unfoldr :: forall a b. (a -> (b, GHC.Internal.Maybe.Maybe a)) -> a -> NonEmpty b
|
| 1509 | 1509 | unzip :: forall a b. NonEmpty (a, b) -> (NonEmpty a, NonEmpty b)
|
| 1510 | + unzip3 :: forall a b c. NonEmpty (a, b, c) -> (NonEmpty a, NonEmpty b, NonEmpty c)
|
|
| 1511 | + unzip4 :: forall a b c d. NonEmpty (a, b, c, d) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d)
|
|
| 1512 | + unzip5 :: forall a b c d e. NonEmpty (a, b, c, d, e) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e)
|
|
| 1513 | + unzip6 :: forall a b c d e f. NonEmpty (a, b, c, d, e, f) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f)
|
|
| 1514 | + unzip7 :: forall a b c d e f g. NonEmpty (a, b, c, d, e, f, g) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f, NonEmpty g)
|
|
| 1510 | 1515 | xor :: NonEmpty GHC.Internal.Types.Bool -> GHC.Internal.Types.Bool
|
| 1511 | 1516 | zip :: forall a b. NonEmpty a -> NonEmpty b -> NonEmpty (a, b)
|
| 1517 | + zip3 :: forall a b c. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty (a, b, c)
|
|
| 1518 | + zip4 :: forall a b c d. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty (a, b, c, d)
|
|
| 1519 | + zip5 :: forall a b c d e. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty (a, b, c, d, e)
|
|
| 1520 | + zip6 :: forall a b c d e f. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty (a, b, c, d, e, f)
|
|
| 1521 | + zip7 :: forall a b c d e f g. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty (a, b, c, d, e, f, g)
|
|
| 1512 | 1522 | zipWith :: forall a b c. (a -> b -> c) -> NonEmpty a -> NonEmpty b -> NonEmpty c
|
| 1523 | + zipWith3 :: forall a b c d. (a -> b -> c -> d) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d
|
|
| 1524 | + zipWith4 :: forall a b c d e. (a -> b -> c -> d -> e) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e
|
|
| 1525 | + zipWith5 :: forall a b c d e f. (a -> b -> c -> d -> e -> f) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f
|
|
| 1526 | + zipWith6 :: forall a b c d e f g. (a -> b -> c -> d -> e -> f -> g) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g
|
|
| 1527 | + zipWith7 :: forall a b c d e f g h. (a -> b -> c -> d -> e -> f -> g -> h) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty h
|
|
| 1513 | 1528 | |
| 1514 | 1529 | module Data.Maybe where
|
| 1515 | 1530 | -- Safety: Safe
|