{-# OPTIONS_GHC -Wall #-}

-- | Aliases for zippable functors, as the ones in Key.Zip inline too early
module ConCat.Zip(Zip, zipWith, zip, zap) where

-- use with
-- import Prelude hiding (zipWith, zip)

import Prelude hiding (zipWith, zip)
import qualified Data.Key as Key
import Data.Key (Zip)

zipWith :: Zip f => (a -> b -> c) -> f a -> f b -> f c
zipWith :: forall (f :: * -> *) a b c.
Zip f =>
(a -> b -> c) -> f a -> f b -> f c
zipWith = (a -> b -> c) -> f a -> f b -> f c
forall a b c. (a -> b -> c) -> f a -> f b -> f c
forall (f :: * -> *) a b c.
Zip f =>
(a -> b -> c) -> f a -> f b -> f c
Key.zipWith
{-# INLINE [0] zipWith #-}

zip :: Zip f => f a -> f b -> f (a, b)
zip :: forall (f :: * -> *) a b. Zip f => f a -> f b -> f (a, b)
zip = f a -> f b -> f (a, b)
forall a b. f a -> f b -> f (a, b)
forall (f :: * -> *) a b. Zip f => f a -> f b -> f (a, b)
Key.zip
{-# INLINE [0] zip #-}

zap :: Zip f => f (a -> b) -> f a -> f b 
zap :: forall (f :: * -> *) a b. Zip f => f (a -> b) -> f a -> f b
zap = f (a -> b) -> f a -> f b
forall a b. f (a -> b) -> f a -> f b
forall (f :: * -> *) a b. Zip f => f (a -> b) -> f a -> f b
Key.zap
{-# INLINE [0] zap #-}