singletons-2.6: 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

Description

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

Synopsis
  • class 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 m6989586621681131419 a6989586621681131420 b6989586621681131421. (~>) (m6989586621681131419 a6989586621681131420) ((~>) (m6989586621681131419 b6989586621681131421) (m6989586621681131419 (a6989586621681131420, b6989586621681131421)))
  • data MzipSym1 (arg6989586621681131495 :: m6989586621681131419 a6989586621681131420) :: forall b6989586621681131421. (~>) (m6989586621681131419 b6989586621681131421) (m6989586621681131419 (a6989586621681131420, b6989586621681131421))
  • type MzipSym2 (arg6989586621681131495 :: m6989586621681131419 a6989586621681131420) (arg6989586621681131496 :: m6989586621681131419 b6989586621681131421) = Mzip arg6989586621681131495 arg6989586621681131496
  • data MzipWithSym0 :: forall a6989586621681131422 b6989586621681131423 c6989586621681131424 m6989586621681131419. (~>) ((~>) a6989586621681131422 ((~>) b6989586621681131423 c6989586621681131424)) ((~>) (m6989586621681131419 a6989586621681131422) ((~>) (m6989586621681131419 b6989586621681131423) (m6989586621681131419 c6989586621681131424)))
  • data MzipWithSym1 (arg6989586621681131499 :: (~>) a6989586621681131422 ((~>) b6989586621681131423 c6989586621681131424)) :: forall m6989586621681131419. (~>) (m6989586621681131419 a6989586621681131422) ((~>) (m6989586621681131419 b6989586621681131423) (m6989586621681131419 c6989586621681131424))
  • data MzipWithSym2 (arg6989586621681131499 :: (~>) a6989586621681131422 ((~>) b6989586621681131423 c6989586621681131424)) (arg6989586621681131500 :: m6989586621681131419 a6989586621681131422) :: (~>) (m6989586621681131419 b6989586621681131423) (m6989586621681131419 c6989586621681131424)
  • type MzipWithSym3 (arg6989586621681131499 :: (~>) a6989586621681131422 ((~>) b6989586621681131423 c6989586621681131424)) (arg6989586621681131500 :: m6989586621681131419 a6989586621681131422) (arg6989586621681131501 :: m6989586621681131419 b6989586621681131423) = MzipWith arg6989586621681131499 arg6989586621681131500 arg6989586621681131501
  • data MunzipSym0 :: forall m6989586621681131419 a6989586621681131425 b6989586621681131426. (~>) (m6989586621681131419 (a6989586621681131425, b6989586621681131426)) (m6989586621681131419 a6989586621681131425, m6989586621681131419 b6989586621681131426)
  • type MunzipSym1 (arg6989586621681131505 :: m6989586621681131419 (a6989586621681131425, b6989586621681131426)) = Munzip arg6989586621681131505

Documentation

class PMonadZip (m :: Type -> Type) Source #

Associated Types

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

type Mzip a a = Apply (Apply Mzip_6989586621681131509Sym0 a) a Source #

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

type MzipWith a a a = Apply (Apply (Apply MzipWith_6989586621681131526Sym0 a) a) a Source #

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

type Munzip a = Apply Munzip_6989586621681131541Sym0 a Source #

Instances

Instances details
PMonadZip [] Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

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

type MzipWith arg arg arg :: m c Source #

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

PMonadZip Maybe Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

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

type MzipWith arg arg arg :: m c Source #

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

PMonadZip Identity Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

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

type MzipWith arg arg arg :: m c Source #

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

PMonadZip First Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

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

type MzipWith arg arg arg :: m c Source #

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

PMonadZip Last Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

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

type MzipWith arg arg arg :: m c Source #

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

PMonadZip Dual Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

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

type MzipWith arg arg arg :: m c Source #

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

PMonadZip Sum Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

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

type MzipWith arg arg arg :: m c Source #

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

PMonadZip Product Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

Associated Types

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

type MzipWith arg arg arg :: m c Source #

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

PMonadZip NonEmpty Source # 
Instance details

Defined in Data.Singletons.Prelude.List.NonEmpty

Associated Types

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

type MzipWith arg arg arg :: m c Source #

type Munzip arg :: (m a, m b) 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_6989586621681131509Sym0 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_6989586621681131526Sym0 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_6989586621681131541Sym0 t => Sing t -> Sing (Apply MunzipSym0 t :: (m a, m b)) Source #

Instances

Instances details
SMonadZip [] Source # 
Instance details

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

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 Identity Source # 
Instance details

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 First Source # 
Instance details

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

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 #

SMonadZip Dual Source # 
Instance details

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 Sum Source # 
Instance details

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 Product Source # 
Instance details

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 NonEmpty Source # 
Instance details

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 #

Defunctionalization symbols

data MzipSym0 :: forall m6989586621681131419 a6989586621681131420 b6989586621681131421. (~>) (m6989586621681131419 a6989586621681131420) ((~>) (m6989586621681131419 b6989586621681131421) (m6989586621681131419 (a6989586621681131420, b6989586621681131421))) Source #

Instances

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

Defined in Data.Singletons.Prelude.Monad.Zip

SuppressUnusedWarnings (MzipSym0 :: TyFun (m6989586621681131419 a6989586621681131420) (m6989586621681131419 b6989586621681131421 ~> m6989586621681131419 (a6989586621681131420, b6989586621681131421)) -> Type) Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

type Apply (MzipSym0 :: TyFun (m6989586621681131419 a6989586621681131420) (m6989586621681131419 b6989586621681131421 ~> m6989586621681131419 (a6989586621681131420, b6989586621681131421)) -> Type) (arg6989586621681131495 :: m6989586621681131419 a6989586621681131420) Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

type Apply (MzipSym0 :: TyFun (m6989586621681131419 a6989586621681131420) (m6989586621681131419 b6989586621681131421 ~> m6989586621681131419 (a6989586621681131420, b6989586621681131421)) -> Type) (arg6989586621681131495 :: m6989586621681131419 a6989586621681131420) = MzipSym1 arg6989586621681131495 b6989586621681131421 :: TyFun (m6989586621681131419 b6989586621681131421) (m6989586621681131419 (a6989586621681131420, b6989586621681131421)) -> Type

data MzipSym1 (arg6989586621681131495 :: m6989586621681131419 a6989586621681131420) :: forall b6989586621681131421. (~>) (m6989586621681131419 b6989586621681131421) (m6989586621681131419 (a6989586621681131420, b6989586621681131421)) Source #

Instances

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

Defined in Data.Singletons.Prelude.Monad.Zip

Methods

sing :: Sing (MzipSym1 d b) Source #

SuppressUnusedWarnings (MzipSym1 arg6989586621681131495 b6989586621681131421 :: TyFun (m6989586621681131419 b6989586621681131421) (m6989586621681131419 (a6989586621681131420, b6989586621681131421)) -> Type) Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

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

Defined in Data.Singletons.Prelude.Monad.Zip

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

type MzipSym2 (arg6989586621681131495 :: m6989586621681131419 a6989586621681131420) (arg6989586621681131496 :: m6989586621681131419 b6989586621681131421) = Mzip arg6989586621681131495 arg6989586621681131496 Source #

data MzipWithSym0 :: forall a6989586621681131422 b6989586621681131423 c6989586621681131424 m6989586621681131419. (~>) ((~>) a6989586621681131422 ((~>) b6989586621681131423 c6989586621681131424)) ((~>) (m6989586621681131419 a6989586621681131422) ((~>) (m6989586621681131419 b6989586621681131423) (m6989586621681131419 c6989586621681131424))) Source #

Instances

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

Defined in Data.Singletons.Prelude.Monad.Zip

SuppressUnusedWarnings (MzipWithSym0 :: TyFun (a6989586621681131422 ~> (b6989586621681131423 ~> c6989586621681131424)) (m6989586621681131419 a6989586621681131422 ~> (m6989586621681131419 b6989586621681131423 ~> m6989586621681131419 c6989586621681131424)) -> Type) Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

type Apply (MzipWithSym0 :: TyFun (a6989586621681131422 ~> (b6989586621681131423 ~> c6989586621681131424)) (m6989586621681131419 a6989586621681131422 ~> (m6989586621681131419 b6989586621681131423 ~> m6989586621681131419 c6989586621681131424)) -> Type) (arg6989586621681131499 :: a6989586621681131422 ~> (b6989586621681131423 ~> c6989586621681131424)) Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

type Apply (MzipWithSym0 :: TyFun (a6989586621681131422 ~> (b6989586621681131423 ~> c6989586621681131424)) (m6989586621681131419 a6989586621681131422 ~> (m6989586621681131419 b6989586621681131423 ~> m6989586621681131419 c6989586621681131424)) -> Type) (arg6989586621681131499 :: a6989586621681131422 ~> (b6989586621681131423 ~> c6989586621681131424)) = MzipWithSym1 arg6989586621681131499 m6989586621681131419 :: TyFun (m6989586621681131419 a6989586621681131422) (m6989586621681131419 b6989586621681131423 ~> m6989586621681131419 c6989586621681131424) -> Type

data MzipWithSym1 (arg6989586621681131499 :: (~>) a6989586621681131422 ((~>) b6989586621681131423 c6989586621681131424)) :: forall m6989586621681131419. (~>) (m6989586621681131419 a6989586621681131422) ((~>) (m6989586621681131419 b6989586621681131423) (m6989586621681131419 c6989586621681131424)) Source #

Instances

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

Defined in Data.Singletons.Prelude.Monad.Zip

Methods

sing :: Sing (MzipWithSym1 d m) Source #

SuppressUnusedWarnings (MzipWithSym1 arg6989586621681131499 m6989586621681131419 :: TyFun (m6989586621681131419 a6989586621681131422) (m6989586621681131419 b6989586621681131423 ~> m6989586621681131419 c6989586621681131424) -> Type) Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

type Apply (MzipWithSym1 arg6989586621681131499 m6989586621681131419 :: TyFun (m6989586621681131419 a6989586621681131422) (m6989586621681131419 b6989586621681131423 ~> m6989586621681131419 c6989586621681131424) -> Type) (arg6989586621681131500 :: m6989586621681131419 a6989586621681131422) Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

type Apply (MzipWithSym1 arg6989586621681131499 m6989586621681131419 :: TyFun (m6989586621681131419 a6989586621681131422) (m6989586621681131419 b6989586621681131423 ~> m6989586621681131419 c6989586621681131424) -> Type) (arg6989586621681131500 :: m6989586621681131419 a6989586621681131422) = MzipWithSym2 arg6989586621681131499 arg6989586621681131500

data MzipWithSym2 (arg6989586621681131499 :: (~>) a6989586621681131422 ((~>) b6989586621681131423 c6989586621681131424)) (arg6989586621681131500 :: m6989586621681131419 a6989586621681131422) :: (~>) (m6989586621681131419 b6989586621681131423) (m6989586621681131419 c6989586621681131424) Source #

Instances

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

Defined in Data.Singletons.Prelude.Monad.Zip

Methods

sing :: Sing (MzipWithSym2 d1 d2) Source #

SuppressUnusedWarnings (MzipWithSym2 arg6989586621681131500 arg6989586621681131499 :: TyFun (m6989586621681131419 b6989586621681131423) (m6989586621681131419 c6989586621681131424) -> Type) Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

type Apply (MzipWithSym2 arg6989586621681131500 arg6989586621681131499 :: TyFun (m b) (m c) -> Type) (arg6989586621681131501 :: m b) Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

type Apply (MzipWithSym2 arg6989586621681131500 arg6989586621681131499 :: TyFun (m b) (m c) -> Type) (arg6989586621681131501 :: m b) = MzipWith arg6989586621681131500 arg6989586621681131499 arg6989586621681131501

type MzipWithSym3 (arg6989586621681131499 :: (~>) a6989586621681131422 ((~>) b6989586621681131423 c6989586621681131424)) (arg6989586621681131500 :: m6989586621681131419 a6989586621681131422) (arg6989586621681131501 :: m6989586621681131419 b6989586621681131423) = MzipWith arg6989586621681131499 arg6989586621681131500 arg6989586621681131501 Source #

data MunzipSym0 :: forall m6989586621681131419 a6989586621681131425 b6989586621681131426. (~>) (m6989586621681131419 (a6989586621681131425, b6989586621681131426)) (m6989586621681131419 a6989586621681131425, m6989586621681131419 b6989586621681131426) Source #

Instances

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

Defined in Data.Singletons.Prelude.Monad.Zip

SuppressUnusedWarnings (MunzipSym0 :: TyFun (m6989586621681131419 (a6989586621681131425, b6989586621681131426)) (m6989586621681131419 a6989586621681131425, m6989586621681131419 b6989586621681131426) -> Type) Source # 
Instance details

Defined in Data.Singletons.Prelude.Monad.Zip

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

Defined in Data.Singletons.Prelude.Monad.Zip

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

type MunzipSym1 (arg6989586621681131505 :: m6989586621681131419 (a6989586621681131425, b6989586621681131426)) = Munzip arg6989586621681131505 Source #