Copyright | (C) 2018 Ryan Scott |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | Ryan Scott |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
Defines the promoted and singled versions of the MonadZip
type class.
Synopsis
- class PMonadZip m where
- class SMonad m => SMonadZip m 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 a6989586621681150519
- data MzipSym1 a6989586621681150519 a6989586621681150520
- type MzipSym2 (a6989586621681150519 :: m a) (a6989586621681150520 :: m b) = Mzip a6989586621681150519 a6989586621681150520 :: m (a, b)
- data MzipWithSym0 a6989586621681150525
- data MzipWithSym1 a6989586621681150525 a6989586621681150526
- data MzipWithSym2 a6989586621681150525 a6989586621681150526 a6989586621681150527
- type MzipWithSym3 (a6989586621681150525 :: (~>) a ((~>) b c)) (a6989586621681150526 :: m a) (a6989586621681150527 :: m b) = MzipWith a6989586621681150525 a6989586621681150526 a6989586621681150527 :: m c
- data MunzipSym0 a6989586621681150530
- type MunzipSym1 (a6989586621681150530 :: m (a, b)) = Munzip a6989586621681150530 :: (m a, m b)
Documentation
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 where Source #
Nothing
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_6989586621681150533Sym0 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_6989586621681150549Sym0 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_6989586621681150562Sym0 t => Sing t -> Sing (Apply MunzipSym0 t :: (m a, m b)) Source #
Instances
Defunctionalization symbols
data MzipSym0 a6989586621681150519 Source #
Instances
SMonadZip m => SingI (MzipSym0 :: TyFun (m a) (m b ~> m (a, b)) -> Type) Source # | |
SuppressUnusedWarnings (MzipSym0 :: TyFun (m a) (m b ~> m (a, b)) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip suppressUnusedWarnings :: () Source # | |
type Apply (MzipSym0 :: TyFun (m a) (m b ~> m (a, b)) -> Type) (a6989586621681150519 :: m a) Source # | |
data MzipSym1 a6989586621681150519 a6989586621681150520 Source #
Instances
(SMonadZip m, SingI d) => SingI (MzipSym1 d :: TyFun (m b) (m (a, b)) -> Type) Source # | |
SuppressUnusedWarnings (MzipSym1 a6989586621681150519 :: TyFun (m b) (m (a, b)) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip suppressUnusedWarnings :: () Source # | |
type Apply (MzipSym1 a6989586621681150519 :: TyFun (m b) (m (a, b)) -> Type) (a6989586621681150520 :: m b) Source # | |
type MzipSym2 (a6989586621681150519 :: m a) (a6989586621681150520 :: m b) = Mzip a6989586621681150519 a6989586621681150520 :: m (a, b) Source #
data MzipWithSym0 a6989586621681150525 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 sing :: Sing MzipWithSym0 Source # | |
SuppressUnusedWarnings (MzipWithSym0 :: TyFun (a ~> (b ~> c)) (m a ~> (m b ~> m c)) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip suppressUnusedWarnings :: () Source # | |
type Apply (MzipWithSym0 :: TyFun (a ~> (b ~> c)) (m a ~> (m b ~> m c)) -> Type) (a6989586621681150525 :: a ~> (b ~> c)) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip |
data MzipWithSym1 a6989586621681150525 a6989586621681150526 Source #
Instances
(SMonadZip m, SingI d) => SingI (MzipWithSym1 d :: TyFun (m a) (m b ~> m c) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip sing :: Sing (MzipWithSym1 d) Source # | |
SuppressUnusedWarnings (MzipWithSym1 a6989586621681150525 :: TyFun (m a) (m b ~> m c) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip suppressUnusedWarnings :: () Source # | |
type Apply (MzipWithSym1 a6989586621681150525 :: TyFun (m a) (m b ~> m c) -> Type) (a6989586621681150526 :: m a) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip type Apply (MzipWithSym1 a6989586621681150525 :: TyFun (m a) (m b ~> m c) -> Type) (a6989586621681150526 :: m a) = MzipWithSym2 a6989586621681150525 a6989586621681150526 |
data MzipWithSym2 a6989586621681150525 a6989586621681150526 a6989586621681150527 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 sing :: Sing (MzipWithSym2 d1 d2) Source # | |
SuppressUnusedWarnings (MzipWithSym2 a6989586621681150525 a6989586621681150526 :: TyFun (m b) (m c) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip suppressUnusedWarnings :: () Source # | |
type Apply (MzipWithSym2 a6989586621681150525 a6989586621681150526 :: TyFun (m b) (m c) -> Type) (a6989586621681150527 :: m b) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip type Apply (MzipWithSym2 a6989586621681150525 a6989586621681150526 :: TyFun (m b) (m c) -> Type) (a6989586621681150527 :: m b) = MzipWithSym3 a6989586621681150525 a6989586621681150526 a6989586621681150527 |
type MzipWithSym3 (a6989586621681150525 :: (~>) a ((~>) b c)) (a6989586621681150526 :: m a) (a6989586621681150527 :: m b) = MzipWith a6989586621681150525 a6989586621681150526 a6989586621681150527 :: m c Source #
data MunzipSym0 a6989586621681150530 Source #
Instances
SMonadZip m => SingI (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip sing :: Sing MunzipSym0 Source # | |
SuppressUnusedWarnings (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip suppressUnusedWarnings :: () Source # | |
type Apply (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) (a6989586621681150530 :: m (a, b)) Source # | |
Defined in Data.Singletons.Prelude.Monad.Zip type Apply (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) (a6989586621681150530 :: m (a, b)) = MunzipSym1 a6989586621681150530 |
type MunzipSym1 (a6989586621681150530 :: m (a, b)) = Munzip a6989586621681150530 :: (m a, m b) Source #