singletons-2.5.1: A framework for generating singleton types

Copyright(C) 2018 Ryan Scott
LicenseBSD-style (see LICENSE)
MaintainerRyan Scott
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

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
    • 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
    • type Munzip (arg :: m (a, b)) :: (m a, m b)
  • class SMonad m => SMonadZip (m :: Type -> Type) where
  • 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 #

type Munzip (arg :: m (a, b)) :: (m a, m b) #

Instances
PMonadZip [] # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

type Mzip arg arg :: m (a, b) #

type MzipWith arg arg arg :: m c #

type Munzip arg :: (m a, m b) #

PMonadZip Maybe # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

type Mzip arg arg :: m (a, b) #

type MzipWith arg arg arg :: m c #

type Munzip arg :: (m a, m b) #

PMonadZip Identity # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

type Mzip arg arg :: m (a, b) #

type MzipWith arg arg arg :: m c #

type Munzip arg :: (m a, m b) #

PMonadZip First # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

type Mzip arg arg :: m (a, b) #

type MzipWith arg arg arg :: m c #

type Munzip arg :: (m a, m b) #

PMonadZip Last # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

type Mzip arg arg :: m (a, b) #

type MzipWith arg arg arg :: m c #

type Munzip arg :: (m a, m b) #

PMonadZip Dual # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

type Mzip arg arg :: m (a, b) #

type MzipWith arg arg arg :: m c #

type Munzip arg :: (m a, m b) #

PMonadZip Sum # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

type Mzip arg arg :: m (a, b) #

type MzipWith arg arg arg :: m c #

type Munzip arg :: (m a, m b) #

PMonadZip Product # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

type Mzip arg arg :: m (a, b) #

type MzipWith arg arg arg :: m c #

type Munzip arg :: (m a, m b) #

PMonadZip NonEmpty # 
Instance details

Defined in Data.Singletons.Prelude.List.NonEmpty

Associated Types

type Mzip arg arg :: m (a, b) #

type MzipWith arg arg arg :: m c #

type Munzip arg :: (m a, m b) #

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)) #

Instances
SMonadZip [] # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Methods

sMzip :: Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) #

sMzipWith :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) #

sMunzip :: Sing t -> Sing (Apply MunzipSym0 t) #

SMonadZip Maybe # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Methods

sMzip :: Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) #

sMzipWith :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) #

sMunzip :: Sing t -> Sing (Apply MunzipSym0 t) #

SMonadZip Identity # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Methods

sMzip :: Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) #

sMzipWith :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) #

sMunzip :: Sing t -> Sing (Apply MunzipSym0 t) #

SMonadZip First # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Methods

sMzip :: Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) #

sMzipWith :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) #

sMunzip :: Sing t -> Sing (Apply MunzipSym0 t) #

SMonadZip Last # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Methods

sMzip :: Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) #

sMzipWith :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) #

sMunzip :: Sing t -> Sing (Apply MunzipSym0 t) #

SMonadZip Dual # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Methods

sMzip :: Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) #

sMzipWith :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) #

sMunzip :: Sing t -> Sing (Apply MunzipSym0 t) #

SMonadZip Sum # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Methods

sMzip :: Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) #

sMzipWith :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) #

sMunzip :: Sing t -> Sing (Apply MunzipSym0 t) #

SMonadZip Product # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Methods

sMzip :: Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) #

sMzipWith :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) #

sMunzip :: Sing t -> Sing (Apply MunzipSym0 t) #

SMonadZip NonEmpty # 
Instance details

Defined in Data.Singletons.Prelude.List.NonEmpty

Methods

sMzip :: Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) #

sMzipWith :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) #

sMunzip :: Sing t -> Sing (Apply MunzipSym0 t) #

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) # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Methods

sing :: Sing MzipSym0 #

SuppressUnusedWarnings (MzipSym0 :: TyFun (m6989586621681120832 a6989586621681120833) (m6989586621681120832 b6989586621681120834 ~> m6989586621681120832 (a6989586621681120833, b6989586621681120834)) -> Type) # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

type Apply (MzipSym0 :: TyFun (m6989586621681120832 a6989586621681120833) (m6989586621681120832 b6989586621681120834 ~> m6989586621681120832 (a6989586621681120833, b6989586621681120834)) -> Type) (arg6989586621681120908 :: m6989586621681120832 a6989586621681120833) # 
Instance details

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) # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Methods

sing :: Sing (MzipSym1 d b) #

SuppressUnusedWarnings (MzipSym1 arg6989586621681120908 b6989586621681120834 :: TyFun (m6989586621681120832 b6989586621681120834) (m6989586621681120832 (a6989586621681120833, b6989586621681120834)) -> Type) # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

type Apply (MzipSym1 arg6989586621681120908 b :: TyFun (m b) (m (a, b)) -> Type) (arg6989586621681120909 :: m b) # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

type Apply (MzipSym1 arg6989586621681120908 b :: TyFun (m b) (m (a, b)) -> Type) (arg6989586621681120909 :: m b) = Mzip arg6989586621681120908 arg6989586621681120909

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) # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

SuppressUnusedWarnings (MzipWithSym0 :: TyFun (a6989586621681120835 ~> (b6989586621681120836 ~> c6989586621681120837)) (m6989586621681120832 a6989586621681120835 ~> (m6989586621681120832 b6989586621681120836 ~> m6989586621681120832 c6989586621681120837)) -> Type) # 
Instance details

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)) # 
Instance details

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) # 
Instance details

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) # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

type Apply (MzipWithSym1 arg6989586621681120912 m6989586621681120832 :: TyFun (m6989586621681120832 a6989586621681120835) (m6989586621681120832 b6989586621681120836 ~> m6989586621681120832 c6989586621681120837) -> Type) (arg6989586621681120913 :: m6989586621681120832 a6989586621681120835) # 
Instance details

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) # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Methods

sing :: Sing (MzipWithSym2 d1 d2) #

SuppressUnusedWarnings (MzipWithSym2 arg6989586621681120913 arg6989586621681120912 :: TyFun (m6989586621681120832 b6989586621681120836) (m6989586621681120832 c6989586621681120837) -> Type) # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

type Apply (MzipWithSym2 arg6989586621681120913 arg6989586621681120912 :: TyFun (m b) (m c) -> Type) (arg6989586621681120914 :: m b) # 
Instance details

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) # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Methods

sing :: Sing MunzipSym0 #

SuppressUnusedWarnings (MunzipSym0 :: TyFun (m6989586621681120832 (a6989586621681120838, b6989586621681120839)) (m6989586621681120832 a6989586621681120838, m6989586621681120832 b6989586621681120839) -> Type) # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

type Apply (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) (arg6989586621681120918 :: m (a, b)) # 
Instance details

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 #