shithub: MicroHs

ref: db16f46fa7757c6bca1d8a9fdda3a23ede5ccdae
dir: /lib/Data/ZipList.hs/

View raw version
module Data.ZipList(ZipList(..), getZipList) where
import Prelude

newtype ZipList a = ZipList [a]
  deriving (Eq, Ord, Show)

getZipList :: forall a . ZipList a -> [a]
getZipList (ZipList as) = as

instance Functor ZipList where
  fmap f (ZipList as) = ZipList (map f as)

instance Applicative ZipList where
  pure a = ZipList (repeat a)
  liftA2 f (ZipList xs) (ZipList ys) = ZipList (zipWith f xs ys)