Copyright | (C) 2018 Ryan Scott |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | Ryan Scott |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
Data.Singletons.Prelude.Monad.Zip
Contents
Description
Defines the promoted and singled versions of the MonadZip
type class.
Synopsis
- class PMonadZip (m :: Type -> Type) where
- class SMonad m => SMonadZip (m :: Type -> Type) where
- sMzip :: forall a b (t :: m a) (t :: m b). Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t :: m (a, b))
- sMzipWith :: forall a b c (t :: (~>) a ((~>) b c)) (t :: m a) (t :: m b). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t :: m c)
- sMunzip :: forall a b (t :: m (a, b)). Sing t -> Sing (Apply MunzipSym0 t :: (m a, m b))
- data MzipSym0 :: forall m6989586621681127563 a6989586621681127564 b6989586621681127565. (~>) (m6989586621681127563 a6989586621681127564) ((~>) (m6989586621681127563 b6989586621681127565) (m6989586621681127563 (a6989586621681127564, b6989586621681127565)))
- data MzipSym1 (arg6989586621681127639 :: m6989586621681127563 a6989586621681127564) :: forall b6989586621681127565. (~>) (m6989586621681127563 b6989586621681127565) (m6989586621681127563 (a6989586621681127564, b6989586621681127565))
- type MzipSym2 (arg6989586621681127639 :: m6989586621681127563 a6989586621681127564) (arg6989586621681127640 :: m6989586621681127563 b6989586621681127565) = Mzip arg6989586621681127639 arg6989586621681127640
- data MzipWithSym0 :: forall a6989586621681127566 b6989586621681127567 c6989586621681127568 m6989586621681127563. (~>) ((~>) a6989586621681127566 ((~>) b6989586621681127567 c6989586621681127568)) ((~>) (m6989586621681127563 a6989586621681127566) ((~>) (m6989586621681127563 b6989586621681127567) (m6989586621681127563 c6989586621681127568)))
- data MzipWithSym1 (arg6989586621681127643 :: (~>) a6989586621681127566 ((~>) b6989586621681127567 c6989586621681127568)) :: forall m6989586621681127563. (~>) (m6989586621681127563 a6989586621681127566) ((~>) (m6989586621681127563 b6989586621681127567) (m6989586621681127563 c6989586621681127568))
- data MzipWithSym2 (arg6989586621681127643 :: (~>) a6989586621681127566 ((~>) b6989586621681127567 c6989586621681127568)) (arg6989586621681127644 :: m6989586621681127563 a6989586621681127566) :: (~>) (m6989586621681127563 b6989586621681127567) (m6989586621681127563 c6989586621681127568)
- type MzipWithSym3 (arg6989586621681127643 :: (~>) a6989586621681127566 ((~>) b6989586621681127567 c6989586621681127568)) (arg6989586621681127644 :: m6989586621681127563 a6989586621681127566) (arg6989586621681127645 :: m6989586621681127563 b6989586621681127567) = MzipWith arg6989586621681127643 arg6989586621681127644 arg6989586621681127645
- data MunzipSym0 :: forall m6989586621681127563 a6989586621681127569 b6989586621681127570. (~>) (m6989586621681127563 (a6989586621681127569, b6989586621681127570)) (m6989586621681127563 a6989586621681127569, m6989586621681127563 b6989586621681127570)
- type MunzipSym1 (arg6989586621681127649 :: m6989586621681127563 (a6989586621681127569, b6989586621681127570)) = Munzip arg6989586621681127649
Documentation
class PMonadZip (m :: Type -> Type) Source #
Associated Types
type Mzip (arg :: m a) (arg :: m b) :: m (a, b) Source #
type MzipWith (arg :: (~>) a ((~>) b c)) (arg :: m a) (arg :: m b) :: m c Source #
class SMonad m => SMonadZip (m :: Type -> Type) where Source #
Minimal complete definition
Nothing
Methods
sMzip :: forall a b (t :: m a) (t :: m b). Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t :: m (a, b)) Source #
default sMzip :: forall a b (t :: m a) (t :: m b). (Apply (Apply MzipSym0 t) t :: m (a, b)) ~ Apply (Apply Mzip_6989586621681127653Sym0 t) t => Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t :: m (a, b)) Source #
sMzipWith :: forall a b c (t :: (~>) a ((~>) b c)) (t :: m a) (t :: m b). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t :: m c) Source #
default sMzipWith :: forall a b c (t :: (~>) a ((~>) b c)) (t :: m a) (t :: m b). (Apply (Apply (Apply MzipWithSym0 t) t) t :: m c) ~ Apply (Apply (Apply MzipWith_6989586621681127670Sym0 t) t) t => Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t :: m c) Source #
sMunzip :: forall a b (t :: m (a, b)). Sing t -> Sing (Apply MunzipSym0 t :: (m a, m b)) Source #
default sMunzip :: forall a b (t :: m (a, b)). (Apply MunzipSym0 t :: (m a, m b)) ~ Apply Munzip_6989586621681127685Sym0 t => Sing t -> Sing (Apply MunzipSym0 t :: (m a, m b)) Source #
Instances
SMonadZip [] Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sMzip :: forall a b (t :: [a]) (t :: [b]). Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) Source # sMzipWith :: forall a b c (t :: a ~> (b ~> c)) (t :: [a]) (t :: [b]). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) Source # sMunzip :: forall a b (t :: [(a, b)]). Sing t -> Sing (Apply MunzipSym0 t) Source # | |
SMonadZip Maybe Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sMzip :: forall a b (t :: Maybe a) (t :: Maybe b). Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) Source # sMzipWith :: forall a b c (t :: a ~> (b ~> c)) (t :: Maybe a) (t :: Maybe b). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) Source # sMunzip :: forall a b (t :: Maybe (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source # | |
SMonadZip NonEmpty Source # | |
Defined in Data.Singletons.Prelude.List.NonEmpty Methods sMzip :: forall a b (t :: NonEmpty a) (t :: NonEmpty b). Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) Source # sMzipWith :: forall a b c (t :: a ~> (b ~> c)) (t :: NonEmpty a) (t :: NonEmpty b). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) Source # sMunzip :: forall a b (t :: NonEmpty (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source # | |
SMonadZip Identity Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sMzip :: forall a b (t :: Identity a) (t :: Identity b). Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) Source # sMzipWith :: forall a b c (t :: a ~> (b ~> c)) (t :: Identity a) (t :: Identity b). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) Source # sMunzip :: forall a b (t :: Identity (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source # | |
SMonadZip Dual Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sMzip :: forall a b (t :: Dual a) (t :: Dual b). Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) Source # sMzipWith :: forall a b c (t :: a ~> (b ~> c)) (t :: Dual a) (t :: Dual b). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) Source # sMunzip :: forall a b (t :: Dual (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source # | |
SMonadZip Product Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sMzip :: forall a b (t :: Product a) (t :: Product b). Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) Source # sMzipWith :: forall a b c (t :: a ~> (b ~> c)) (t :: Product a) (t :: Product b). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) Source # sMunzip :: forall a b (t :: Product (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source # | |
SMonadZip Sum Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sMzip :: forall a b (t :: Sum a) (t :: Sum b). Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) Source # sMzipWith :: forall a b c (t :: a ~> (b ~> c)) (t :: Sum a) (t :: Sum b). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) Source # sMunzip :: forall a b (t :: Sum (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source # | |
SMonadZip First Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sMzip :: forall a b (t :: First a) (t :: First b). Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) Source # sMzipWith :: forall a b c (t :: a ~> (b ~> c)) (t :: First a) (t :: First b). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) Source # sMunzip :: forall a b (t :: First (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source # | |
SMonadZip Last Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sMzip :: forall a b (t :: Last a) (t :: Last b). Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) Source # sMzipWith :: forall a b c (t :: a ~> (b ~> c)) (t :: Last a) (t :: Last b). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) Source # sMunzip :: forall a b (t :: Last (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source # |
Defunctionalization symbols
data MzipSym0 :: forall m6989586621681127563 a6989586621681127564 b6989586621681127565. (~>) (m6989586621681127563 a6989586621681127564) ((~>) (m6989586621681127563 b6989586621681127565) (m6989586621681127563 (a6989586621681127564, b6989586621681127565))) Source #
Instances
SMonadZip m => SingI (MzipSym0 :: TyFun (m a) (m b ~> m (a, b)) -> Type) Source # | |
SuppressUnusedWarnings (MzipSym0 :: TyFun (m6989586621681127563 a6989586621681127564) (m6989586621681127563 b6989586621681127565 ~> m6989586621681127563 (a6989586621681127564, b6989586621681127565)) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods suppressUnusedWarnings :: () Source # | |
type Apply (MzipSym0 :: TyFun (m6989586621681127563 a6989586621681127564) (m6989586621681127563 b6989586621681127565 ~> m6989586621681127563 (a6989586621681127564, b6989586621681127565)) -> Type) (arg6989586621681127639 :: m6989586621681127563 a6989586621681127564) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip type Apply (MzipSym0 :: TyFun (m6989586621681127563 a6989586621681127564) (m6989586621681127563 b6989586621681127565 ~> m6989586621681127563 (a6989586621681127564, b6989586621681127565)) -> Type) (arg6989586621681127639 :: m6989586621681127563 a6989586621681127564) = MzipSym1 arg6989586621681127639 b6989586621681127565 :: TyFun (m6989586621681127563 b6989586621681127565) (m6989586621681127563 (a6989586621681127564, b6989586621681127565)) -> Type |
data MzipSym1 (arg6989586621681127639 :: m6989586621681127563 a6989586621681127564) :: forall b6989586621681127565. (~>) (m6989586621681127563 b6989586621681127565) (m6989586621681127563 (a6989586621681127564, b6989586621681127565)) Source #
Instances
(SMonadZip m, SingI d) => SingI (MzipSym1 d b :: TyFun (m b) (m (a, b)) -> Type) Source # | |
SuppressUnusedWarnings (MzipSym1 arg6989586621681127639 b6989586621681127565 :: TyFun (m6989586621681127563 b6989586621681127565) (m6989586621681127563 (a6989586621681127564, b6989586621681127565)) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods suppressUnusedWarnings :: () Source # | |
type Apply (MzipSym1 arg6989586621681127639 b :: TyFun (m b) (m (a, b)) -> Type) (arg6989586621681127640 :: m b) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip |
type MzipSym2 (arg6989586621681127639 :: m6989586621681127563 a6989586621681127564) (arg6989586621681127640 :: m6989586621681127563 b6989586621681127565) = Mzip arg6989586621681127639 arg6989586621681127640 Source #
data MzipWithSym0 :: forall a6989586621681127566 b6989586621681127567 c6989586621681127568 m6989586621681127563. (~>) ((~>) a6989586621681127566 ((~>) b6989586621681127567 c6989586621681127568)) ((~>) (m6989586621681127563 a6989586621681127566) ((~>) (m6989586621681127563 b6989586621681127567) (m6989586621681127563 c6989586621681127568))) Source #
Instances
SMonadZip m => SingI (MzipWithSym0 :: TyFun (a ~> (b ~> c)) (m a ~> (m b ~> m c)) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sing :: Sing MzipWithSym0 Source # | |
SuppressUnusedWarnings (MzipWithSym0 :: TyFun (a6989586621681127566 ~> (b6989586621681127567 ~> c6989586621681127568)) (m6989586621681127563 a6989586621681127566 ~> (m6989586621681127563 b6989586621681127567 ~> m6989586621681127563 c6989586621681127568)) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods suppressUnusedWarnings :: () Source # | |
type Apply (MzipWithSym0 :: TyFun (a6989586621681127566 ~> (b6989586621681127567 ~> c6989586621681127568)) (m6989586621681127563 a6989586621681127566 ~> (m6989586621681127563 b6989586621681127567 ~> m6989586621681127563 c6989586621681127568)) -> Type) (arg6989586621681127643 :: a6989586621681127566 ~> (b6989586621681127567 ~> c6989586621681127568)) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip type Apply (MzipWithSym0 :: TyFun (a6989586621681127566 ~> (b6989586621681127567 ~> c6989586621681127568)) (m6989586621681127563 a6989586621681127566 ~> (m6989586621681127563 b6989586621681127567 ~> m6989586621681127563 c6989586621681127568)) -> Type) (arg6989586621681127643 :: a6989586621681127566 ~> (b6989586621681127567 ~> c6989586621681127568)) = MzipWithSym1 arg6989586621681127643 m6989586621681127563 :: TyFun (m6989586621681127563 a6989586621681127566) (m6989586621681127563 b6989586621681127567 ~> m6989586621681127563 c6989586621681127568) -> Type |
data MzipWithSym1 (arg6989586621681127643 :: (~>) a6989586621681127566 ((~>) b6989586621681127567 c6989586621681127568)) :: forall m6989586621681127563. (~>) (m6989586621681127563 a6989586621681127566) ((~>) (m6989586621681127563 b6989586621681127567) (m6989586621681127563 c6989586621681127568)) Source #
Instances
(SMonadZip m, SingI d) => SingI (MzipWithSym1 d m :: TyFun (m a) (m b ~> m c) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sing :: Sing (MzipWithSym1 d m) Source # | |
SuppressUnusedWarnings (MzipWithSym1 arg6989586621681127643 m6989586621681127563 :: TyFun (m6989586621681127563 a6989586621681127566) (m6989586621681127563 b6989586621681127567 ~> m6989586621681127563 c6989586621681127568) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods suppressUnusedWarnings :: () Source # | |
type Apply (MzipWithSym1 arg6989586621681127643 m6989586621681127563 :: TyFun (m6989586621681127563 a6989586621681127566) (m6989586621681127563 b6989586621681127567 ~> m6989586621681127563 c6989586621681127568) -> Type) (arg6989586621681127644 :: m6989586621681127563 a6989586621681127566) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip type Apply (MzipWithSym1 arg6989586621681127643 m6989586621681127563 :: TyFun (m6989586621681127563 a6989586621681127566) (m6989586621681127563 b6989586621681127567 ~> m6989586621681127563 c6989586621681127568) -> Type) (arg6989586621681127644 :: m6989586621681127563 a6989586621681127566) = MzipWithSym2 arg6989586621681127643 arg6989586621681127644 |
data MzipWithSym2 (arg6989586621681127643 :: (~>) a6989586621681127566 ((~>) b6989586621681127567 c6989586621681127568)) (arg6989586621681127644 :: m6989586621681127563 a6989586621681127566) :: (~>) (m6989586621681127563 b6989586621681127567) (m6989586621681127563 c6989586621681127568) Source #
Instances
(SMonadZip m, SingI d1, SingI d2) => SingI (MzipWithSym2 d1 d2 :: TyFun (m b) (m c) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sing :: Sing (MzipWithSym2 d1 d2) Source # | |
SuppressUnusedWarnings (MzipWithSym2 arg6989586621681127644 arg6989586621681127643 :: TyFun (m6989586621681127563 b6989586621681127567) (m6989586621681127563 c6989586621681127568) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods suppressUnusedWarnings :: () Source # | |
type Apply (MzipWithSym2 arg6989586621681127644 arg6989586621681127643 :: TyFun (m b) (m c) -> Type) (arg6989586621681127645 :: m b) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip type Apply (MzipWithSym2 arg6989586621681127644 arg6989586621681127643 :: TyFun (m b) (m c) -> Type) (arg6989586621681127645 :: m b) = MzipWith arg6989586621681127644 arg6989586621681127643 arg6989586621681127645 |
type MzipWithSym3 (arg6989586621681127643 :: (~>) a6989586621681127566 ((~>) b6989586621681127567 c6989586621681127568)) (arg6989586621681127644 :: m6989586621681127563 a6989586621681127566) (arg6989586621681127645 :: m6989586621681127563 b6989586621681127567) = MzipWith arg6989586621681127643 arg6989586621681127644 arg6989586621681127645 Source #
data MunzipSym0 :: forall m6989586621681127563 a6989586621681127569 b6989586621681127570. (~>) (m6989586621681127563 (a6989586621681127569, b6989586621681127570)) (m6989586621681127563 a6989586621681127569, m6989586621681127563 b6989586621681127570) Source #
Instances
SMonadZip m => SingI (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sing :: Sing MunzipSym0 Source # | |
SuppressUnusedWarnings (MunzipSym0 :: TyFun (m6989586621681127563 (a6989586621681127569, b6989586621681127570)) (m6989586621681127563 a6989586621681127569, m6989586621681127563 b6989586621681127570) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods suppressUnusedWarnings :: () Source # | |
type Apply (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) (arg6989586621681127649 :: m (a, b)) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip type Apply (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) (arg6989586621681127649 :: m (a, b)) = Munzip arg6989586621681127649 |
type MunzipSym1 (arg6989586621681127649 :: m6989586621681127563 (a6989586621681127569, b6989586621681127570)) = Munzip arg6989586621681127649 Source #