packages feed

contravariant 0.4.4 → 0.5

raw patch · 3 files changed

+48/−8 lines, 3 filesdep +ghc-primdep ~basePVP ok

version bump matches the API change (PVP)

Dependencies added: ghc-prim

Dependency ranges changed: base

API changes (from Hackage documentation)

+ Data.Functor.Contravariant: (>$) :: Contravariant f => b -> f b -> f a
+ Data.Functor.Contravariant: instance [safe] (Contravariant f, Contravariant g) => Contravariant (f :*: g)
+ Data.Functor.Contravariant: instance [safe] (Contravariant f, Contravariant g) => Contravariant (f :+: g)
+ Data.Functor.Contravariant: instance [safe] (Functor f, Contravariant g) => Contravariant (f :.: g)
+ Data.Functor.Contravariant: instance [safe] Contravariant (K1 i c)
+ Data.Functor.Contravariant: instance [safe] Contravariant U1
+ Data.Functor.Contravariant: instance [safe] Contravariant V1
+ Data.Functor.Contravariant: instance [safe] Contravariant f => Contravariant (M1 i c f)
+ Data.Functor.Contravariant: instance [safe] Contravariant f => Contravariant (Rec1 f)
- Data.Functor.Contravariant: class Contravariant f
+ Data.Functor.Contravariant: class Contravariant f where >$ = contramap . const

Files

CHANGELOG.markdown view
@@ -1,3 +1,8 @@+0.5+---+* Added `(>$)`+* Added instances for `GHC.Generics`+ 0.4.4 ----- * Fixed compatibility with GHC 7.7 and tightened `Safe` Haskell support.
Data/Functor/Contravariant.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE CPP #-}-#ifdef __GLASGOW_HASKELL__+{-# LANGUAGE TypeOperators #-} {-# LANGUAGE DeriveDataTypeable #-} #if __GLASGOW_HASKELL__ >= 702 #if MIN_VERSION_transformers(0,3,0)@@ -12,12 +12,10 @@ {-# LANGUAGE Trustworthy #-} #endif #endif-#endif- ----------------------------------------------------------------------------- -- | -- Module      :  Data.Functor.Contravariant--- Copyright   :  (C) 2007-2011 Edward Kmett+-- Copyright   :  (C) 2007-2014 Edward Kmett -- License     :  BSD-style (see the file LICENSE) -- -- Maintainer  :  Edward Kmett <ekmett@gmail.com>@@ -58,10 +56,11 @@ import Data.Functor.Constant import Data.Functor.Compose import Data.Functor.Reverse-import Data.Proxy+import GHC.Generics import Prelude hiding ((.),id)-#ifdef __GLASGOW_HASKELL__ import Data.Typeable+#if __GLASGOW_HASKELL__ < 707+import Data.Proxy #endif  -- | Any instance should be subject to the following laws:@@ -76,8 +75,14 @@ class Contravariant f where   contramap :: (a -> b) -> f b -> f a -infixl 4 >$<, >$$<+  -- | Replace all locations in the output with the same value.+  -- The default definition is @'contramap' . 'const'@, but this may be+  -- overridden with a more efficient version.+  (>$) :: b -> f b -> f a+  (>$) = contramap . const +infixl 4 >$, >$<, >$$<+ (>$<) :: Contravariant f => (a -> b) -> f b -> f a (>$<) = contramap {-# INLINE (>$<) #-}@@ -85,6 +90,32 @@ (>$$<) :: Contravariant f => f b -> (a -> b) -> f a (>$$<) = flip contramap {-# INLINE (>$$<) #-}++instance Contravariant V1 where+  contramap _ x = x `seq` undefined++instance Contravariant U1 where+  contramap _ U1 = U1++instance Contravariant f => Contravariant (Rec1 f) where+  contramap f (Rec1 fp)= Rec1 (contramap f fp)++instance Contravariant f => Contravariant (M1 i c f) where+  contramap f (M1 fp) = M1 (contramap f fp)++instance Contravariant (K1 i c) where+  contramap _ (K1 c) = K1 c++instance (Contravariant f, Contravariant g) => Contravariant (f :*: g) where+  contramap f (xs :*: ys) = contramap f xs :*: contramap f ys++instance (Functor f, Contravariant g) => Contravariant (f :.: g) where+  contramap f (Comp1 fg) = Comp1 (fmap (contramap f) fg)+  {-# INLINE contramap #-}++instance (Contravariant f, Contravariant g) => Contravariant (f :+: g) where+  contramap f (L1 xs) = L1 (contramap f xs)+  contramap f (R1 ys) = R1 (contramap f ys)  instance (Contravariant f, Contravariant g) => Contravariant (Product f g) where   contramap f (Pair a b) = Pair (contramap f a) (contramap f b)
contravariant.cabal view
@@ -1,6 +1,6 @@ name:          contravariant category:      Control, Data-version:       0.4.4+version:       0.5 license:       BSD3 cabal-version: >= 1.6 license-file:  LICENSE@@ -27,6 +27,10 @@     tagged              >= 0.4.4 && < 1,     transformers        >= 0.2   && < 0.4,     transformers-compat >= 0.1   && < 1++  if impl(ghc >= 7.4 && < 7.6)+    build-depends: ghc-prim+   exposed-modules:     Data.Functor.Contravariant     Data.Functor.Contravariant.Compose