| 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 PMonad m => 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 a6989586621681120833 b6989586621681120834 m6989586621681120832. (~>) (m6989586621681120832 a6989586621681120833) ((~>) (m6989586621681120832 b6989586621681120834) (m6989586621681120832 (a6989586621681120833, b6989586621681120834)))
- data MzipSym1 (arg6989586621681120908 :: m6989586621681120832 a6989586621681120833) :: forall b6989586621681120834. (~>) (m6989586621681120832 b6989586621681120834) (m6989586621681120832 (a6989586621681120833, b6989586621681120834))
- type MzipSym2 (arg6989586621681120908 :: m6989586621681120832 a6989586621681120833) (arg6989586621681120909 :: m6989586621681120832 b6989586621681120834) = Mzip arg6989586621681120908 arg6989586621681120909
- data MzipWithSym0 :: forall a6989586621681120835 b6989586621681120836 c6989586621681120837 m6989586621681120832. (~>) ((~>) a6989586621681120835 ((~>) b6989586621681120836 c6989586621681120837)) ((~>) (m6989586621681120832 a6989586621681120835) ((~>) (m6989586621681120832 b6989586621681120836) (m6989586621681120832 c6989586621681120837)))
- data MzipWithSym1 (arg6989586621681120912 :: (~>) a6989586621681120835 ((~>) b6989586621681120836 c6989586621681120837)) :: forall m6989586621681120832. (~>) (m6989586621681120832 a6989586621681120835) ((~>) (m6989586621681120832 b6989586621681120836) (m6989586621681120832 c6989586621681120837))
- data MzipWithSym2 (arg6989586621681120912 :: (~>) a6989586621681120835 ((~>) b6989586621681120836 c6989586621681120837)) (arg6989586621681120913 :: m6989586621681120832 a6989586621681120835) :: (~>) (m6989586621681120832 b6989586621681120836) (m6989586621681120832 c6989586621681120837)
- type MzipWithSym3 (arg6989586621681120912 :: (~>) a6989586621681120835 ((~>) b6989586621681120836 c6989586621681120837)) (arg6989586621681120913 :: m6989586621681120832 a6989586621681120835) (arg6989586621681120914 :: m6989586621681120832 b6989586621681120836) = MzipWith arg6989586621681120912 arg6989586621681120913 arg6989586621681120914
- data MunzipSym0 :: forall a6989586621681120838 b6989586621681120839 m6989586621681120832. (~>) (m6989586621681120832 (a6989586621681120838, b6989586621681120839)) (m6989586621681120832 a6989586621681120838, m6989586621681120832 b6989586621681120839)
- type MunzipSym1 (arg6989586621681120918 :: m6989586621681120832 (a6989586621681120838, b6989586621681120839)) = Munzip arg6989586621681120918
Documentation
class PMonad m => PMonadZip (m :: Type -> Type) #
Associated Types
type Mzip (arg :: m a) (arg :: m b) :: m (a, b) #
type MzipWith (arg :: (~>) a ((~>) b c)) (arg :: m a) (arg :: m b) :: m c #
class SMonad m => SMonadZip (m :: Type -> Type) where #
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)) #
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)) #
sMzip :: forall a b (t :: m a) (t :: m b). (Apply (Apply MzipSym0 t) t :: m (a, b)) ~ Apply (Apply Mzip_6989586621681120932Sym0 t) t => 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). (Apply (Apply (Apply MzipWithSym0 t) t) t :: m c) ~ Apply (Apply (Apply MzipWith_6989586621681120948Sym0 t) t) t => Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t :: m c) #
sMunzip :: forall a b (t :: m (a, b)). (Apply MunzipSym0 t :: (m a, m b)) ~ Apply Munzip_6989586621681120957Sym0 t => Sing t -> Sing (Apply MunzipSym0 t :: (m a, m b)) #
Defunctionalization symbols
data MzipSym0 :: forall a6989586621681120833 b6989586621681120834 m6989586621681120832. (~>) (m6989586621681120832 a6989586621681120833) ((~>) (m6989586621681120832 b6989586621681120834) (m6989586621681120832 (a6989586621681120833, b6989586621681120834))) #
Instances
| SMonadZip m => SingI (MzipSym0 :: TyFun (m a) (m b ~> m (a, b)) -> Type) # | |
Defined in Data.Singletons.Prelude.Monad.Zip | |
| SuppressUnusedWarnings (MzipSym0 :: TyFun (m6989586621681120832 a6989586621681120833) (m6989586621681120832 b6989586621681120834 ~> m6989586621681120832 (a6989586621681120833, b6989586621681120834)) -> Type) # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods suppressUnusedWarnings :: () # | |
| type Apply (MzipSym0 :: TyFun (m6989586621681120832 a6989586621681120833) (m6989586621681120832 b6989586621681120834 ~> m6989586621681120832 (a6989586621681120833, b6989586621681120834)) -> Type) (arg6989586621681120908 :: m6989586621681120832 a6989586621681120833) # | |
Defined in Data.Singletons.Prelude.Monad.Zip type Apply (MzipSym0 :: TyFun (m6989586621681120832 a6989586621681120833) (m6989586621681120832 b6989586621681120834 ~> m6989586621681120832 (a6989586621681120833, b6989586621681120834)) -> Type) (arg6989586621681120908 :: m6989586621681120832 a6989586621681120833) = (MzipSym1 arg6989586621681120908 b6989586621681120834 :: TyFun (m6989586621681120832 b6989586621681120834) (m6989586621681120832 (a6989586621681120833, b6989586621681120834)) -> Type) | |
data MzipSym1 (arg6989586621681120908 :: m6989586621681120832 a6989586621681120833) :: forall b6989586621681120834. (~>) (m6989586621681120832 b6989586621681120834) (m6989586621681120832 (a6989586621681120833, b6989586621681120834)) #
Instances
| (SMonadZip m, SingI d) => SingI (MzipSym1 d b :: TyFun (m b) (m (a, b)) -> Type) # | |
Defined in Data.Singletons.Prelude.Monad.Zip | |
| SuppressUnusedWarnings (MzipSym1 arg6989586621681120908 b6989586621681120834 :: TyFun (m6989586621681120832 b6989586621681120834) (m6989586621681120832 (a6989586621681120833, b6989586621681120834)) -> Type) # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods suppressUnusedWarnings :: () # | |
| type Apply (MzipSym1 arg6989586621681120908 b :: TyFun (m b) (m (a, b)) -> Type) (arg6989586621681120909 :: m b) # | |
type MzipSym2 (arg6989586621681120908 :: m6989586621681120832 a6989586621681120833) (arg6989586621681120909 :: m6989586621681120832 b6989586621681120834) = Mzip arg6989586621681120908 arg6989586621681120909 #
data MzipWithSym0 :: forall a6989586621681120835 b6989586621681120836 c6989586621681120837 m6989586621681120832. (~>) ((~>) a6989586621681120835 ((~>) b6989586621681120836 c6989586621681120837)) ((~>) (m6989586621681120832 a6989586621681120835) ((~>) (m6989586621681120832 b6989586621681120836) (m6989586621681120832 c6989586621681120837))) #
Instances
| SMonadZip m => SingI (MzipWithSym0 :: TyFun (a ~> (b ~> c)) (m a ~> (m b ~> m c)) -> Type) # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sing :: Sing MzipWithSym0 # | |
| SuppressUnusedWarnings (MzipWithSym0 :: TyFun (a6989586621681120835 ~> (b6989586621681120836 ~> c6989586621681120837)) (m6989586621681120832 a6989586621681120835 ~> (m6989586621681120832 b6989586621681120836 ~> m6989586621681120832 c6989586621681120837)) -> Type) # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods suppressUnusedWarnings :: () # | |
| type Apply (MzipWithSym0 :: TyFun (a6989586621681120835 ~> (b6989586621681120836 ~> c6989586621681120837)) (m6989586621681120832 a6989586621681120835 ~> (m6989586621681120832 b6989586621681120836 ~> m6989586621681120832 c6989586621681120837)) -> Type) (arg6989586621681120912 :: a6989586621681120835 ~> (b6989586621681120836 ~> c6989586621681120837)) # | |
Defined in Data.Singletons.Prelude.Monad.Zip type Apply (MzipWithSym0 :: TyFun (a6989586621681120835 ~> (b6989586621681120836 ~> c6989586621681120837)) (m6989586621681120832 a6989586621681120835 ~> (m6989586621681120832 b6989586621681120836 ~> m6989586621681120832 c6989586621681120837)) -> Type) (arg6989586621681120912 :: a6989586621681120835 ~> (b6989586621681120836 ~> c6989586621681120837)) = (MzipWithSym1 arg6989586621681120912 m6989586621681120832 :: TyFun (m6989586621681120832 a6989586621681120835) (m6989586621681120832 b6989586621681120836 ~> m6989586621681120832 c6989586621681120837) -> Type) | |
data MzipWithSym1 (arg6989586621681120912 :: (~>) a6989586621681120835 ((~>) b6989586621681120836 c6989586621681120837)) :: forall m6989586621681120832. (~>) (m6989586621681120832 a6989586621681120835) ((~>) (m6989586621681120832 b6989586621681120836) (m6989586621681120832 c6989586621681120837)) #
Instances
| (SMonadZip m, SingI d) => SingI (MzipWithSym1 d m :: TyFun (m a) (m b ~> m c) -> Type) # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sing :: Sing (MzipWithSym1 d m) # | |
| SuppressUnusedWarnings (MzipWithSym1 arg6989586621681120912 m6989586621681120832 :: TyFun (m6989586621681120832 a6989586621681120835) (m6989586621681120832 b6989586621681120836 ~> m6989586621681120832 c6989586621681120837) -> Type) # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods suppressUnusedWarnings :: () # | |
| type Apply (MzipWithSym1 arg6989586621681120912 m6989586621681120832 :: TyFun (m6989586621681120832 a6989586621681120835) (m6989586621681120832 b6989586621681120836 ~> m6989586621681120832 c6989586621681120837) -> Type) (arg6989586621681120913 :: m6989586621681120832 a6989586621681120835) # | |
Defined in Data.Singletons.Prelude.Monad.Zip type Apply (MzipWithSym1 arg6989586621681120912 m6989586621681120832 :: TyFun (m6989586621681120832 a6989586621681120835) (m6989586621681120832 b6989586621681120836 ~> m6989586621681120832 c6989586621681120837) -> Type) (arg6989586621681120913 :: m6989586621681120832 a6989586621681120835) = MzipWithSym2 arg6989586621681120912 arg6989586621681120913 | |
data MzipWithSym2 (arg6989586621681120912 :: (~>) a6989586621681120835 ((~>) b6989586621681120836 c6989586621681120837)) (arg6989586621681120913 :: m6989586621681120832 a6989586621681120835) :: (~>) (m6989586621681120832 b6989586621681120836) (m6989586621681120832 c6989586621681120837) #
Instances
| (SMonadZip m, SingI d1, SingI d2) => SingI (MzipWithSym2 d1 d2 :: TyFun (m b) (m c) -> Type) # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sing :: Sing (MzipWithSym2 d1 d2) # | |
| SuppressUnusedWarnings (MzipWithSym2 arg6989586621681120913 arg6989586621681120912 :: TyFun (m6989586621681120832 b6989586621681120836) (m6989586621681120832 c6989586621681120837) -> Type) # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods suppressUnusedWarnings :: () # | |
| type Apply (MzipWithSym2 arg6989586621681120913 arg6989586621681120912 :: TyFun (m b) (m c) -> Type) (arg6989586621681120914 :: m b) # | |
Defined in Data.Singletons.Prelude.Monad.Zip type Apply (MzipWithSym2 arg6989586621681120913 arg6989586621681120912 :: TyFun (m b) (m c) -> Type) (arg6989586621681120914 :: m b) = MzipWith arg6989586621681120913 arg6989586621681120912 arg6989586621681120914 | |
type MzipWithSym3 (arg6989586621681120912 :: (~>) a6989586621681120835 ((~>) b6989586621681120836 c6989586621681120837)) (arg6989586621681120913 :: m6989586621681120832 a6989586621681120835) (arg6989586621681120914 :: m6989586621681120832 b6989586621681120836) = MzipWith arg6989586621681120912 arg6989586621681120913 arg6989586621681120914 #
data MunzipSym0 :: forall a6989586621681120838 b6989586621681120839 m6989586621681120832. (~>) (m6989586621681120832 (a6989586621681120838, b6989586621681120839)) (m6989586621681120832 a6989586621681120838, m6989586621681120832 b6989586621681120839) #
Instances
| SMonadZip m => SingI (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods sing :: Sing MunzipSym0 # | |
| SuppressUnusedWarnings (MunzipSym0 :: TyFun (m6989586621681120832 (a6989586621681120838, b6989586621681120839)) (m6989586621681120832 a6989586621681120838, m6989586621681120832 b6989586621681120839) -> Type) # | |
Defined in Data.Singletons.Prelude.Monad.Zip Methods suppressUnusedWarnings :: () # | |
| type Apply (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) (arg6989586621681120918 :: m (a, b)) # | |
Defined in Data.Singletons.Prelude.Monad.Zip type Apply (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) (arg6989586621681120918 :: m (a, b)) = Munzip arg6989586621681120918 | |
type MunzipSym1 (arg6989586621681120918 :: m6989586621681120832 (a6989586621681120838, b6989586621681120839)) = Munzip arg6989586621681120918 #