Copyright | (C) 2018 Ryan Scott |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | Ryan Scott |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe-Inferred |
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 :: (~>) (m a) ((~>) (m b) (m (a, b)))
- data MzipSym1 (a6989586621681132456 :: m a) :: (~>) (m b) (m (a, b))
- type family MzipSym2 (a6989586621681132456 :: m a) (a6989586621681132457 :: m b) :: m (a, b) where ...
- data MzipWithSym0 :: (~>) ((~>) a ((~>) b c)) ((~>) (m a) ((~>) (m b) (m c)))
- data MzipWithSym1 (a6989586621681132462 :: (~>) a ((~>) b c)) :: (~>) (m a) ((~>) (m b) (m c))
- data MzipWithSym2 (a6989586621681132462 :: (~>) a ((~>) b c)) (a6989586621681132463 :: m a) :: (~>) (m b) (m c)
- type family MzipWithSym3 (a6989586621681132462 :: (~>) a ((~>) b c)) (a6989586621681132463 :: m a) (a6989586621681132464 :: m b) :: m c where ...
- data MunzipSym0 :: (~>) (m (a, b)) (m a, m b)
- type family MunzipSym1 (a6989586621681132467 :: m (a, b)) :: (m a, m b) where ...
Documentation
type Mzip (arg :: m a) (arg :: m b) :: m (a, b) Source #
type Mzip a a = Apply (Apply Mzip_6989586621681132470Sym0 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_6989586621681132486Sym0 a) a) a
type Munzip (arg :: m (a, b)) :: (m a, m b) Source #
type Munzip a = Apply Munzip_6989586621681132499Sym0 a
Instances
PMonadZip Identity Source # | |
PMonadZip First Source # | |
PMonadZip Last Source # | |
PMonadZip Dual Source # | |
PMonadZip Product Source # | |
PMonadZip Sum Source # | |
PMonadZip NonEmpty Source # | |
PMonadZip Maybe Source # | |
PMonadZip [] Source # | |
PMonadZip (Proxy :: Type -> Type) Source # | |
PMonadZip (Product f g) 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_6989586621681132470Sym0 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_6989586621681132486Sym0 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_6989586621681132499Sym0 t => Sing t -> Sing (Apply MunzipSym0 t :: (m a, m b)) Source #
Instances
SMonadZip Identity Source # | |
Defined in Control.Monad.Zip.Singletons 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 # | |
Defined in Control.Monad.Zip.Singletons 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 # | |
Defined in Control.Monad.Zip.Singletons 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 # | |
Defined in Control.Monad.Zip.Singletons 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 Product Source # | |
Defined in Control.Monad.Zip.Singletons 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 Sum Source # | |
Defined in Control.Monad.Zip.Singletons 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 NonEmpty Source # | |
Defined in Data.List.NonEmpty.Singletons 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 # | |
SMonadZip Maybe Source # | |
Defined in Control.Monad.Zip.Singletons 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 [] Source # | |
Defined in Control.Monad.Zip.Singletons 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 (Proxy :: Type -> Type) Source # | |
Defined in Control.Monad.Zip.Singletons sMzip :: forall a b (t :: Proxy a) (t :: Proxy b). Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) Source # sMzipWith :: forall a b c (t :: a ~> (b ~> c)) (t :: Proxy a) (t :: Proxy b). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) 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 # | |
Defined in Data.Functor.Product.Singletons sMzip :: forall a b (t :: Product f g a) (t :: Product f g b). Sing t -> Sing t -> Sing (Apply (Apply MzipSym0 t) t) Source # sMzipWith :: forall a b c (t :: a ~> (b ~> c)) (t :: Product f g a) (t :: Product f g b). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply MzipWithSym0 t) t) t) 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
SMonadZip m => SingI (MzipSym0 :: TyFun (m a) (m b ~> m (a, b)) -> Type) Source # | |
Defined in Control.Monad.Zip.Singletons | |
SuppressUnusedWarnings (MzipSym0 :: TyFun (m a) (m b ~> m (a, b)) -> Type) Source # | |
Defined in Control.Monad.Zip.Singletons suppressUnusedWarnings :: () # | |
type Apply (MzipSym0 :: TyFun (m a) (m b ~> m (a, b)) -> Type) (a6989586621681132456 :: m a) Source # | |
Defined in Control.Monad.Zip.Singletons |
data MzipSym1 (a6989586621681132456 :: m a) :: (~>) (m b) (m (a, b)) Source #
Instances
SMonadZip m => SingI1 (MzipSym1 :: m a -> TyFun (m b) (m (a, b)) -> Type) Source # | |
Defined in Control.Monad.Zip.Singletons | |
(SMonadZip m, SingI d) => SingI (MzipSym1 d :: TyFun (m b) (m (a, b)) -> Type) Source # | |
Defined in Control.Monad.Zip.Singletons | |
SuppressUnusedWarnings (MzipSym1 a6989586621681132456 :: TyFun (m b) (m (a, b)) -> Type) Source # | |
Defined in Control.Monad.Zip.Singletons suppressUnusedWarnings :: () # | |
type Apply (MzipSym1 a6989586621681132456 :: TyFun (m b) (m (a, b)) -> Type) (a6989586621681132457 :: m b) Source # | |
Defined in Control.Monad.Zip.Singletons |
type family MzipSym2 (a6989586621681132456 :: m a) (a6989586621681132457 :: m b) :: m (a, b) where ... Source #
data MzipWithSym0 :: (~>) ((~>) a ((~>) b c)) ((~>) (m a) ((~>) (m b) (m c))) Source #
Instances
SMonadZip m => SingI (MzipWithSym0 :: TyFun (a ~> (b ~> c)) (m a ~> (m b ~> m c)) -> Type) Source # | |
Defined in Control.Monad.Zip.Singletons sing :: Sing MzipWithSym0 | |
SuppressUnusedWarnings (MzipWithSym0 :: TyFun (a ~> (b ~> c)) (m a ~> (m b ~> m c)) -> Type) Source # | |
Defined in Control.Monad.Zip.Singletons suppressUnusedWarnings :: () # | |
type Apply (MzipWithSym0 :: TyFun (a ~> (b ~> c)) (m a ~> (m b ~> m c)) -> Type) (a6989586621681132462 :: a ~> (b ~> c)) Source # | |
Defined in Control.Monad.Zip.Singletons type Apply (MzipWithSym0 :: TyFun (a ~> (b ~> c)) (m a ~> (m b ~> m c)) -> Type) (a6989586621681132462 :: a ~> (b ~> c)) = MzipWithSym1 a6989586621681132462 :: TyFun (m a) (m b ~> m c) -> Type |
data MzipWithSym1 (a6989586621681132462 :: (~>) a ((~>) b c)) :: (~>) (m a) ((~>) (m b) (m c)) Source #
Instances
SMonadZip m => SingI1 (MzipWithSym1 :: (a ~> (b ~> c)) -> TyFun (m a) (m b ~> m c) -> Type) Source # | |
Defined in Control.Monad.Zip.Singletons 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 # | |
Defined in Control.Monad.Zip.Singletons sing :: Sing (MzipWithSym1 d) | |
SuppressUnusedWarnings (MzipWithSym1 a6989586621681132462 :: TyFun (m a) (m b ~> m c) -> Type) Source # | |
Defined in Control.Monad.Zip.Singletons suppressUnusedWarnings :: () # | |
type Apply (MzipWithSym1 a6989586621681132462 :: TyFun (m a) (m b ~> m c) -> Type) (a6989586621681132463 :: m a) Source # | |
Defined in Control.Monad.Zip.Singletons type Apply (MzipWithSym1 a6989586621681132462 :: TyFun (m a) (m b ~> m c) -> Type) (a6989586621681132463 :: m a) = MzipWithSym2 a6989586621681132462 a6989586621681132463 |
data MzipWithSym2 (a6989586621681132462 :: (~>) a ((~>) b c)) (a6989586621681132463 :: m a) :: (~>) (m b) (m c) Source #
Instances
(SMonadZip m, SingI d) => SingI1 (MzipWithSym2 d :: m a -> TyFun (m b) (m c) -> Type) Source # | |
Defined in Control.Monad.Zip.Singletons 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 # | |
Defined in Control.Monad.Zip.Singletons 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 # | |
Defined in Control.Monad.Zip.Singletons sing :: Sing (MzipWithSym2 d1 d2) | |
SuppressUnusedWarnings (MzipWithSym2 a6989586621681132462 a6989586621681132463 :: TyFun (m b) (m c) -> Type) Source # | |
Defined in Control.Monad.Zip.Singletons suppressUnusedWarnings :: () # | |
type Apply (MzipWithSym2 a6989586621681132462 a6989586621681132463 :: TyFun (m b) (m c) -> Type) (a6989586621681132464 :: m b) Source # | |
Defined in Control.Monad.Zip.Singletons type Apply (MzipWithSym2 a6989586621681132462 a6989586621681132463 :: TyFun (m b) (m c) -> Type) (a6989586621681132464 :: m b) = MzipWith a6989586621681132462 a6989586621681132463 a6989586621681132464 |
type family MzipWithSym3 (a6989586621681132462 :: (~>) a ((~>) b c)) (a6989586621681132463 :: m a) (a6989586621681132464 :: m b) :: m c where ... Source #
MzipWithSym3 a6989586621681132462 a6989586621681132463 a6989586621681132464 = MzipWith a6989586621681132462 a6989586621681132463 a6989586621681132464 |
data MunzipSym0 :: (~>) (m (a, b)) (m a, m b) Source #
Instances
SMonadZip m => SingI (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) Source # | |
Defined in Control.Monad.Zip.Singletons sing :: Sing MunzipSym0 | |
SuppressUnusedWarnings (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) Source # | |
Defined in Control.Monad.Zip.Singletons suppressUnusedWarnings :: () # | |
type Apply (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) (a6989586621681132467 :: m (a, b)) Source # | |
Defined in Control.Monad.Zip.Singletons type Apply (MunzipSym0 :: TyFun (m (a, b)) (m a, m b) -> Type) (a6989586621681132467 :: m (a, b)) = Munzip a6989586621681132467 |
type family MunzipSym1 (a6989586621681132467 :: m (a, b)) :: (m a, m b) where ... Source #
MunzipSym1 a6989586621681132467 = Munzip a6989586621681132467 |