singletons-base-3.1.1: A promoted and singled version of the base library
Copyright(C) 2018 Ryan Scott
LicenseBSD-style (see LICENSE)
MaintainerRyan Scott
Stabilityexperimental
Portabilitynon-portable
Safe HaskellSafe-Inferred
LanguageGHC2021

Control.Monad.Zip.Singletons

Description

Defines the promoted and singled versions of the MonadZip type class.

Synopsis
  • class PMonadZip m 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 where
  • data MzipSym0 :: (~>) (m a) ((~>) (m b) (m (a, b)))
  • data MzipSym1 (a6989586621681156532 :: m a) :: (~>) (m b) (m (a, b))
  • type family MzipSym2 (a6989586621681156532 :: m a) (a6989586621681156533 :: m b) :: m (a, b) where ...
  • data MzipWithSym0 :: (~>) ((~>) a ((~>) b c)) ((~>) (m a) ((~>) (m b) (m c)))
  • data MzipWithSym1 (a6989586621681156538 :: (~>) a ((~>) b c)) :: (~>) (m a) ((~>) (m b) (m c))
  • data MzipWithSym2 (a6989586621681156538 :: (~>) a ((~>) b c)) (a6989586621681156539 :: m a) :: (~>) (m b) (m c)
  • type family MzipWithSym3 (a6989586621681156538 :: (~>) a ((~>) b c)) (a6989586621681156539 :: m a) (a6989586621681156540 :: m b) :: m c where ...
  • data MunzipSym0 :: (~>) (m (a, b)) (m a, m b)
  • type family MunzipSym1 (a6989586621681156543 :: m (a, b)) :: (m a, m b) where ...

Documentation

class PMonadZip m Source #

Associated Types

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

type Mzip a a = Apply (Apply Mzip_6989586621681156546Sym0 a) a

type MzipWith (arg :: (~>) a ((~>) b c)) (arg :: m a) (arg :: m b) :: m c Source #

type MzipWith a a a = Apply (Apply (Apply MzipWith_6989586621681156562Sym0 a) a) a

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

type Munzip a = Apply Munzip_6989586621681156575Sym0 a

Instances

Instances details
PMonadZip Identity Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Associated Types

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

type MzipWith arg arg1 arg2 :: m c Source #

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

PMonadZip First Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Associated Types

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

type MzipWith arg arg1 arg2 :: m c Source #

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

PMonadZip Last Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Associated Types

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

type MzipWith arg arg1 arg2 :: m c Source #

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

PMonadZip Dual Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Associated Types

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

type MzipWith arg arg1 arg2 :: m c Source #

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

PMonadZip Product Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Associated Types

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

type MzipWith arg arg1 arg2 :: m c Source #

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

PMonadZip Sum Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Associated Types

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

type MzipWith arg arg1 arg2 :: m c Source #

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

PMonadZip NonEmpty Source # 
Instance details

Defined in Data.List.NonEmpty.Singletons

Associated Types

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

type MzipWith arg arg1 arg2 :: m c Source #

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

PMonadZip Maybe Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Associated Types

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

type MzipWith arg arg1 arg2 :: m c Source #

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

PMonadZip [] Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Associated Types

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

type MzipWith arg arg1 arg2 :: m c Source #

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

PMonadZip (Proxy :: Type -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Associated Types

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

type MzipWith arg arg1 arg2 :: m c Source #

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

PMonadZip (Product f g) Source # 
Instance details

Defined in Data.Functor.Product.Singletons

Associated Types

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

type MzipWith arg arg1 arg2 :: m c Source #

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

class SMonad m => SMonadZip m 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_6989586621681156546Sym0 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_6989586621681156562Sym0 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_6989586621681156575Sym0 t => Sing t -> Sing (Apply MunzipSym0 t :: (m a, m b)) Source #

Instances

Instances details
SMonadZip Identity Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

sMzip :: forall a b (t1 :: Identity a) (t2 :: Identity b). Sing t1 -> Sing t2 -> Sing (Apply (Apply MzipSym0 t1) t2) Source #

sMzipWith :: forall a b c (t1 :: a ~> (b ~> c)) (t2 :: Identity a) (t3 :: Identity b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply MzipWithSym0 t1) t2) t3) Source #

sMunzip :: forall a b (t :: Identity (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source #

SMonadZip First Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

sMzip :: forall a b (t1 :: First a) (t2 :: First b). Sing t1 -> Sing t2 -> Sing (Apply (Apply MzipSym0 t1) t2) Source #

sMzipWith :: forall a b c (t1 :: a ~> (b ~> c)) (t2 :: First a) (t3 :: First b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply MzipWithSym0 t1) t2) t3) Source #

sMunzip :: forall a b (t :: First (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source #

SMonadZip Last Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

sMzip :: forall a b (t1 :: Last a) (t2 :: Last b). Sing t1 -> Sing t2 -> Sing (Apply (Apply MzipSym0 t1) t2) Source #

sMzipWith :: forall a b c (t1 :: a ~> (b ~> c)) (t2 :: Last a) (t3 :: Last b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply MzipWithSym0 t1) t2) t3) Source #

sMunzip :: forall a b (t :: Last (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source #

SMonadZip Dual Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

sMzip :: forall a b (t1 :: Dual a) (t2 :: Dual b). Sing t1 -> Sing t2 -> Sing (Apply (Apply MzipSym0 t1) t2) Source #

sMzipWith :: forall a b c (t1 :: a ~> (b ~> c)) (t2 :: Dual a) (t3 :: Dual b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply MzipWithSym0 t1) t2) t3) Source #

sMunzip :: forall a b (t :: Dual (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source #

SMonadZip Product Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

sMzip :: forall a b (t1 :: Product a) (t2 :: Product b). Sing t1 -> Sing t2 -> Sing (Apply (Apply MzipSym0 t1) t2) Source #

sMzipWith :: forall a b c (t1 :: a ~> (b ~> c)) (t2 :: Product a) (t3 :: Product b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply MzipWithSym0 t1) t2) t3) Source #

sMunzip :: forall a b (t :: Product (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source #

SMonadZip Sum Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

sMzip :: forall a b (t1 :: Sum a) (t2 :: Sum b). Sing t1 -> Sing t2 -> Sing (Apply (Apply MzipSym0 t1) t2) Source #

sMzipWith :: forall a b c (t1 :: a ~> (b ~> c)) (t2 :: Sum a) (t3 :: Sum b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply MzipWithSym0 t1) t2) t3) Source #

sMunzip :: forall a b (t :: Sum (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source #

SMonadZip NonEmpty Source # 
Instance details

Defined in Data.List.NonEmpty.Singletons

Methods

sMzip :: forall a b (t1 :: NonEmpty a) (t2 :: NonEmpty b). Sing t1 -> Sing t2 -> Sing (Apply (Apply MzipSym0 t1) t2) Source #

sMzipWith :: forall a b c (t1 :: a ~> (b ~> c)) (t2 :: NonEmpty a) (t3 :: NonEmpty b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply MzipWithSym0 t1) t2) t3) Source #

sMunzip :: forall a b (t :: NonEmpty (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source #

SMonadZip Maybe Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

sMzip :: forall a b (t1 :: Maybe a) (t2 :: Maybe b). Sing t1 -> Sing t2 -> Sing (Apply (Apply MzipSym0 t1) t2) Source #

sMzipWith :: forall a b c (t1 :: a ~> (b ~> c)) (t2 :: Maybe a) (t3 :: Maybe b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply MzipWithSym0 t1) t2) t3) Source #

sMunzip :: forall a b (t :: Maybe (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source #

SMonadZip [] Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

sMzip :: forall a b (t1 :: [a]) (t2 :: [b]). Sing t1 -> Sing t2 -> Sing (Apply (Apply MzipSym0 t1) t2) Source #

sMzipWith :: forall a b c (t1 :: a ~> (b ~> c)) (t2 :: [a]) (t3 :: [b]). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply MzipWithSym0 t1) t2) t3) Source #

sMunzip :: forall a b (t :: [(a, b)]). Sing t -> Sing (Apply MunzipSym0 t) Source #

SMonadZip (Proxy :: Type -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

sMzip :: forall a b (t1 :: Proxy a) (t2 :: Proxy b). Sing t1 -> Sing t2 -> Sing (Apply (Apply MzipSym0 t1) t2) Source #

sMzipWith :: forall a b c (t1 :: a ~> (b ~> c)) (t2 :: Proxy a) (t3 :: Proxy b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply MzipWithSym0 t1) t2) t3) Source #

sMunzip :: forall a b (t :: Proxy (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source #

(SMonadZip f, SMonadZip g) => SMonadZip (Product f g) Source # 
Instance details

Defined in Data.Functor.Product.Singletons

Methods

sMzip :: forall a b (t1 :: Product f g a) (t2 :: Product f g b). Sing t1 -> Sing t2 -> Sing (Apply (Apply MzipSym0 t1) t2) Source #

sMzipWith :: forall a b c (t1 :: a ~> (b ~> c)) (t2 :: Product f g a) (t3 :: Product f g b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply MzipWithSym0 t1) t2) t3) Source #

sMunzip :: forall a b (t :: Product f g (a, b)). Sing t -> Sing (Apply MunzipSym0 t) Source #

Defunctionalization symbols

data MzipSym0 :: (~>) (m a) ((~>) (m b) (m (a, b))) Source #

Instances

Instances details
SMonadZip m => SingI (MzipSym0 :: TyFun (m a) (m b ~> m (a, b)) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

sing :: Sing MzipSym0

SuppressUnusedWarnings (MzipSym0 :: TyFun (m a) (m b ~> m (a, b)) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

type Apply (MzipSym0 :: TyFun (m a) (m b ~> m (a, b)) -> Type) (a6989586621681156532 :: m a) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

type Apply (MzipSym0 :: TyFun (m a) (m b ~> m (a, b)) -> Type) (a6989586621681156532 :: m a) = MzipSym1 a6989586621681156532 :: TyFun (m b) (m (a, b)) -> Type

data MzipSym1 (a6989586621681156532 :: m a) :: (~>) (m b) (m (a, b)) Source #

Instances

Instances details
SMonadZip m => SingI1 (MzipSym1 :: m a -> TyFun (m b) (m (a, b)) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

liftSing :: forall (x :: k1). Sing x -> Sing (MzipSym1 x)

(SMonadZip m, SingI d) => SingI (MzipSym1 d :: TyFun (m b) (m (a, b)) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

sing :: Sing (MzipSym1 d)

SuppressUnusedWarnings (MzipSym1 a6989586621681156532 :: TyFun (m b) (m (a, b)) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

type Apply (MzipSym1 a6989586621681156532 :: TyFun (m b) (m (a, b)) -> Type) (a6989586621681156533 :: m b) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

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

type family MzipSym2 (a6989586621681156532 :: m a) (a6989586621681156533 :: m b) :: m (a, b) where ... Source #

Equations

MzipSym2 a6989586621681156532 a6989586621681156533 = Mzip a6989586621681156532 a6989586621681156533 

data MzipWithSym0 :: (~>) ((~>) a ((~>) b c)) ((~>) (m a) ((~>) (m b) (m c))) Source #

Instances

Instances details
SMonadZip m => SingI (MzipWithSym0 :: TyFun (a ~> (b ~> c)) (m a ~> (m b ~> m c)) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

SuppressUnusedWarnings (MzipWithSym0 :: TyFun (a ~> (b ~> c)) (m a ~> (m b ~> m c)) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

type Apply (MzipWithSym0 :: TyFun (a ~> (b ~> c)) (m a ~> (m b ~> m c)) -> Type) (a6989586621681156538 :: a ~> (b ~> c)) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

type Apply (MzipWithSym0 :: TyFun (a ~> (b ~> c)) (m a ~> (m b ~> m c)) -> Type) (a6989586621681156538 :: a ~> (b ~> c)) = MzipWithSym1 a6989586621681156538 :: TyFun (m a) (m b ~> m c) -> Type

data MzipWithSym1 (a6989586621681156538 :: (~>) a ((~>) b c)) :: (~>) (m a) ((~>) (m b) (m c)) Source #

Instances

Instances details
SMonadZip m => SingI1 (MzipWithSym1 :: (a ~> (b ~> c)) -> TyFun (m a) (m b ~> m c) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

liftSing :: forall (x :: k1). Sing x -> Sing (MzipWithSym1 x)

(SMonadZip m, SingI d) => SingI (MzipWithSym1 d :: TyFun (m a) (m b ~> m c) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

sing :: Sing (MzipWithSym1 d)

SuppressUnusedWarnings (MzipWithSym1 a6989586621681156538 :: TyFun (m a) (m b ~> m c) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

type Apply (MzipWithSym1 a6989586621681156538 :: TyFun (m a) (m b ~> m c) -> Type) (a6989586621681156539 :: m a) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

type Apply (MzipWithSym1 a6989586621681156538 :: TyFun (m a) (m b ~> m c) -> Type) (a6989586621681156539 :: m a) = MzipWithSym2 a6989586621681156538 a6989586621681156539

data MzipWithSym2 (a6989586621681156538 :: (~>) a ((~>) b c)) (a6989586621681156539 :: m a) :: (~>) (m b) (m c) Source #

Instances

Instances details
(SMonadZip m, SingI d) => SingI1 (MzipWithSym2 d :: m a -> TyFun (m b) (m c) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

liftSing :: forall (x :: k1). Sing x -> Sing (MzipWithSym2 d x)

SMonadZip m => SingI2 (MzipWithSym2 :: (a ~> (b ~> c)) -> m a -> TyFun (m b) (m c) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

liftSing2 :: forall (x :: k1) (y :: k2). Sing x -> Sing y -> Sing (MzipWithSym2 x y)

(SMonadZip m, SingI d1, SingI d2) => SingI (MzipWithSym2 d1 d2 :: TyFun (m b) (m c) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

sing :: Sing (MzipWithSym2 d1 d2)

SuppressUnusedWarnings (MzipWithSym2 a6989586621681156538 a6989586621681156539 :: TyFun (m b) (m c) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

type Apply (MzipWithSym2 a6989586621681156538 a6989586621681156539 :: TyFun (m b) (m c) -> Type) (a6989586621681156540 :: m b) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

type Apply (MzipWithSym2 a6989586621681156538 a6989586621681156539 :: TyFun (m b) (m c) -> Type) (a6989586621681156540 :: m b) = MzipWith a6989586621681156538 a6989586621681156539 a6989586621681156540

type family MzipWithSym3 (a6989586621681156538 :: (~>) a ((~>) b c)) (a6989586621681156539 :: m a) (a6989586621681156540 :: m b) :: m c where ... Source #

Equations

MzipWithSym3 a6989586621681156538 a6989586621681156539 a6989586621681156540 = MzipWith a6989586621681156538 a6989586621681156539 a6989586621681156540 

data MunzipSym0 :: (~>) (m (a, b)) (m a, m b) Source #

Instances

Instances details
SMonadZip m => SingI (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

Methods

sing :: Sing MunzipSym0

SuppressUnusedWarnings (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) Source # 
Instance details

Defined in Control.Monad.Zip.Singletons

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

Defined in Control.Monad.Zip.Singletons

type Apply (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) (a6989586621681156543 :: m (a, b)) = Munzip a6989586621681156543

type family MunzipSym1 (a6989586621681156543 :: m (a, b)) :: (m a, m b) where ... Source #

Equations

MunzipSym1 a6989586621681156543 = Munzip a6989586621681156543