{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE InstanceSigs #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneKindSignatures #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
module Data.Singletons.Prelude.Monad.Zip (
PMonadZip(..), SMonadZip(..),
MzipSym0, MzipSym1, MzipSym2,
MzipWithSym0, MzipWithSym1, MzipWithSym2, MzipWithSym3,
MunzipSym0, MunzipSym1,
) where
import Data.Functor.Identity
import Data.Monoid
import Data.Proxy
import Data.Singletons.Prelude.Identity
import Data.Singletons.Prelude.Instances
import Data.Singletons.Prelude.List
( ZipSym0, ZipWithSym0, UnzipSym0
, sZip, sZipWith, sUnzip )
import Data.Singletons.Prelude.Monad.Internal
import Data.Singletons.Prelude.Monoid ()
import Data.Singletons.Prelude.Proxy
import Data.Singletons.Prelude.Tuple
import Data.Singletons.Single
$(