indexed-traversable-instances 0.1.1.1 → 0.1.1.2
raw patch · 3 files changed
+23/−11 lines, 3 filesdep ~OneTupledep ~basedep ~quickcheck-instances
Dependency ranges changed: OneTuple, base, quickcheck-instances
Files
- indexed-traversable-instances.cabal +5/−5
- src/Data/Functor/WithIndex/Instances.hs +10/−4
- tests/main.hs +8/−2
indexed-traversable-instances.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.12 name: indexed-traversable-instances-version: 0.1.1.1+version: 0.1.1.2 build-type: Simple license: BSD2 license-file: LICENSE@@ -32,8 +32,8 @@ || ==8.8.4 || ==8.10.7 || ==9.0.2- || ==9.2.4- || ==9.4.1+ || ==9.2.5+ || ==9.4.4 source-repository head type: git@@ -47,7 +47,7 @@ build-depends: base >=4.5 && <4.18 , indexed-traversable >=0.1 && <0.2- , OneTuple >=0.3 && <0.4+ , OneTuple >=0.3 && <0.5 , tagged >=0.8.6 && <0.9 , unordered-containers >=0.2.8.0 && <0.3 , vector >=0.12.1.2 && <0.14@@ -83,6 +83,6 @@ build-depends: QuickCheck >=2.14.2 && <2.15- , quickcheck-instances >=0.3.26 && <0.4+ , quickcheck-instances >=0.3.29 && <0.4 , tasty >=1.2.3 && <1.5 , tasty-quickcheck >=0.10.1.1 && <0.11
src/Data/Functor/WithIndex/Instances.hs view
@@ -21,9 +21,15 @@ import Control.Applicative ((<$>)) import Data.HashMap.Lazy (HashMap) import Data.Tagged (Tagged (..))-import Data.Tuple.Solo (Solo (Solo)) import Data.Vector (Vector) +#if MIN_VERSION_OneTuple(0,4,0)+import Data.Tuple.Solo (Solo (MkSolo))+#else+import Data.Tuple.Solo (Solo (Solo))+#define MkSolo Solo+#endif+ import qualified Data.HashMap.Lazy as HM import qualified Data.Vector as V @@ -89,13 +95,13 @@ ------------------------------------------------------------------------------- instance FunctorWithIndex () Solo where- imap f (Solo a) = Solo (f () a)+ imap f (MkSolo a) = MkSolo (f () a) {-# INLINE imap #-} instance FoldableWithIndex () Solo where- ifoldMap f (Solo a) = f () a+ ifoldMap f (MkSolo a) = f () a {-# INLINE ifoldMap #-} instance TraversableWithIndex () Solo where- itraverse f (Solo a) = Solo <$> f () a+ itraverse f (MkSolo a) = MkSolo <$> f () a {-# INLINE itraverse #-}
tests/main.hs view
@@ -7,13 +7,19 @@ import Data.Foldable (toList) import Data.Functor.Identity (Identity (..)) import Data.Monoid (Endo (..), Monoid (..))-import Data.Tuple.Solo (Solo (Solo)) import Test.QuickCheck (Arbitrary, CoArbitrary, Fun, Function, Property, applyFun, (===)) import Test.QuickCheck.Poly (A, B) import Test.Tasty (TestTree, defaultMain, testGroup) import Test.Tasty.QuickCheck (testProperty) +#if MIN_VERSION_OneTuple(0,4,0)+import Data.Tuple.Solo (Solo (MkSolo))+#else+import Data.Tuple.Solo (Solo (Solo))+#define MkSolo Solo+#endif+ import qualified Data.HashMap.Lazy as HM import qualified Data.Map as Map import qualified Data.Sequence as Seq@@ -53,7 +59,7 @@ , battery $ mkT (HM.keys :: forall a. HM.HashMap I a -> [I]) , battery $ mkT (zipWith const [0 ..] . toList :: forall a. Seq.Seq a -> [Int]) , battery $ mkT $ zipWith const [0 ..] . V.toList- , battery $ mkT $ \(Solo _) -> [()]+ , battery $ mkT $ \(MkSolo _) -> [()] #if MIN_VERSION_containers(0,6,3) , battery $ mkT IntMap.keys #endif