functor-classes-compat 1 → 1.0.1
raw patch · 8 files changed
+169/−61 lines, 8 filesdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base
API changes (from Hackage documentation)
- Data.IntMap.Functor.Classes: instance Data.Functor.Classes.Eq1 Data.IntMap.Base.IntMap
- Data.IntMap.Functor.Classes: instance Data.Functor.Classes.Ord1 Data.IntMap.Base.IntMap
- Data.IntMap.Functor.Classes: instance Data.Functor.Classes.Read1 Data.IntMap.Base.IntMap
- Data.IntMap.Functor.Classes: instance Data.Functor.Classes.Show1 Data.IntMap.Base.IntMap
- Data.Map.Functor.Classes: instance (GHC.Classes.Ord k, GHC.Read.Read k) => Data.Functor.Classes.Read1 (Data.Map.Base.Map k)
- Data.Map.Functor.Classes: instance Data.Functor.Classes.Eq2 Data.Map.Base.Map
- Data.Map.Functor.Classes: instance Data.Functor.Classes.Ord2 Data.Map.Base.Map
- Data.Map.Functor.Classes: instance Data.Functor.Classes.Show2 Data.Map.Base.Map
- Data.Map.Functor.Classes: instance GHC.Classes.Eq k => Data.Functor.Classes.Eq1 (Data.Map.Base.Map k)
- Data.Map.Functor.Classes: instance GHC.Classes.Ord k => Data.Functor.Classes.Ord1 (Data.Map.Base.Map k)
- Data.Map.Functor.Classes: instance GHC.Show.Show k => Data.Functor.Classes.Show1 (Data.Map.Base.Map k)
- Data.Set.Functor.Classes: instance Data.Functor.Classes.Eq1 Data.Set.Base.Set
- Data.Set.Functor.Classes: instance Data.Functor.Classes.Ord1 Data.Set.Base.Set
- Data.Set.Functor.Classes: instance Data.Functor.Classes.Show1 Data.Set.Base.Set
Files
- changelog.md +3/−0
- functor-classes-compat.cabal +93/−61
- src-explicit/containers/Data/Sequence/Functor/Classes.hs +19/−0
- src-explicit/containers/Data/Tree/Functor/Classes.hs +24/−0
- src-implicit/containers/Data/Sequence/Functor/Classes.hs +9/−0
- src-implicit/containers/Data/Tree/Functor/Classes.hs +19/−0
- src-none/containers/Data/Sequence/Functor/Classes.hs +1/−0
- src-none/containers/Data/Tree/Functor/Classes.hs +1/−0
+ changelog.md view
@@ -0,0 +1,3 @@+# 1.0.1++Add instances for `Tree` and `Seq`
functor-classes-compat.cabal view
@@ -1,6 +1,6 @@-name: functor-classes-compat-version: 1-synopsis: Data.Functor.Classes instances for core packages+name: functor-classes-compat+version: 1.0.1+synopsis: Data.Functor.Classes instances for core packages description: "Data.Functor.Classes" instances for core packages: .@@ -9,49 +9,56 @@ * vector . * unordered-containers-homepage: https://github.com/phadej/functor-classes-compat#readme-bug-reports: https://github.com/phadej/functor-classes-compat/issues-license: BSD3-license-file: LICENSE-author: Oleg Grenrus <oleg.grenrus@iki.fi>-maintainer: Oleg Grenrus <oleg.grenrus@iki.fi>-copyright: 2016 Oleg Grenrus-category: Data-build-type: Simple-extra-source-files: README.md-cabal-version: >=1.10++homepage: https://github.com/phadej/functor-classes-compat#readme+bug-reports: https://github.com/phadej/functor-classes-compat/issues+license: BSD3+license-file: LICENSE+author: Oleg Grenrus <oleg.grenrus@iki.fi>+maintainer: Oleg Grenrus <oleg.grenrus@iki.fi>+copyright: 2016 Oleg Grenrus+category: Data+build-type: Simple+extra-source-files: README.md changelog.md+cabal-version: >=1.10 tested-with:- GHC==7.4.2,- GHC==7.6.3,- GHC==7.8.4,- GHC==7.10.3,- GHC==8.0.1,- GHC==8.0.2+ GHC ==7.4.2+ || ==7.6.3+ || ==7.8.4+ || ==7.10.3+ || ==8.0.2+ || ==8.2.2+ || ==8.4.4+ || ==8.6.5+ || ==8.8.4+ || ==8.10.3 flag base-transformers-1- description: Together with base-transformers-1 pick: base >= 4.9, transformers < 0.4, 0.4.*, or >= 0.5. See cabal file for precise assignments.- manual: False- default: True+ description:+ Together with base-transformers-1 pick: base >= 4.9, transformers < 0.4, 0.4.*, or >= 0.5. See cabal file for precise assignments. + manual: False+ default: True+ flag base-transformers-2 description: See base-transformers-1 flag- manual: False- default: True+ manual: False+ default: True flag vector description: 'vector >= 0.12'- manual: False- default: True+ manual: False+ default: True flag containers description: 'containers >= 0.5.9.1'- manual: False- default: True+ manual: False+ default: True flag unordered-containers description: 'unordered-containers >= 0.2.8.0'- manual: False- default: True+ manual: False+ default: True source-repository head type: git@@ -62,13 +69,15 @@ Data.Map.Functor.Classes Data.Set.Functor.Classes Data.IntMap.Functor.Classes+ Data.Sequence.Functor.Classes+ Data.Tree.Functor.Classes Data.Vector.Functor.Classes Data.HashSet.Functor.Classes Data.HashMap.Functor.Classes- default-language: Haskell2010- ghc-options: -Wall - build-depends: hashable >=1.0.1.1 && <1.3+ default-language: Haskell2010+ ghc-options: -Wall+ build-depends: hashable >=1.0.1.1 && <1.4 -- base and transformer dependencies: -- t t: base >= 4.9@@ -79,69 +88,92 @@ -- The order is chosen so 'f f' combination is only requiring src-old if flag(base-transformers-1) if flag(base-transformers-2)- build-depends: base >=4.9 && <4.10+ build-depends: base >=4.9 && <4.16+ else- build-depends: base >= 4.5 && <4.9,- transformers >= 0.5 && <0.6+ build-depends:+ base >=4.5 && <4.9+ , transformers >=0.5 && <0.6+ else if flag(base-transformers-2) -- we don't really care about transformers version, as long as it <0.4 -- to make flag selection deterministic- build-depends: base >= 4.5 && <4.9,- transformers < 0.4,- transformers-compat >= 0.5 && <0.6- else- build-depends: base >= 4.5 && <4.9,- transformers >= 0.4 && <0.5+ build-depends:+ base >=4.5 && <4.9+ , transformers >=0 && <0.4+ , transformers-compat >=0.5 && <0.7 + else+ build-depends:+ base >=4.5 && <4.9+ , transformers >=0.4 && <0.5 -- containers if flag(containers)- build-depends: containers >= 0.5.9.1 && <0.6- if flag(base-transformers-1) && flag(base-transformers-2)- hs-source-dirs: src-none/containers+ build-depends: containers >=0.5.9.1 && <0.7++ if (flag(base-transformers-1) && flag(base-transformers-2))+ hs-source-dirs: src-none/containers+ else- if !flag(base-transformers-1) && !flag(base-transformers-2)+ if (!flag(base-transformers-1) && !flag(base-transformers-2)) hs-source-dirs: src-implicit/containers+ else hs-source-dirs: src-explicit/containers+ else- build-depends: containers >= 0.4 && <0.5.9.1- if !flag(base-transformers-1) && !flag(base-transformers-2)+ build-depends: containers >=0.4 && <0.5.9.1++ if (!flag(base-transformers-1) && !flag(base-transformers-2)) hs-source-dirs: src-implicit/containers+ else hs-source-dirs: src-explicit/containers -- unordered-containers if flag(unordered-containers)- build-depends: unordered-containers >= 0.2.8.0 && <0.3- if flag(base-transformers-1) && flag(base-transformers-2)- hs-source-dirs: src-none/unordered-containers+ build-depends: unordered-containers >=0.2.8.0 && <0.3++ if (flag(base-transformers-1) && flag(base-transformers-2))+ hs-source-dirs: src-none/unordered-containers+ else- if !flag(base-transformers-1) && !flag(base-transformers-2)+ if (!flag(base-transformers-1) && !flag(base-transformers-2)) hs-source-dirs: src-implicit/unordered-containers+ else hs-source-dirs: src-explicit/unordered-containers+ else- build-depends: unordered-containers >= 0.2.7.1 && <0.2.8.0- if !flag(base-transformers-1) && !flag(base-transformers-2)+ build-depends: unordered-containers >=0.2.7.1 && <0.2.8.0++ if (!flag(base-transformers-1) && !flag(base-transformers-2)) hs-source-dirs: src-implicit/unordered-containers+ else hs-source-dirs: src-explicit/unordered-containers -- vector if flag(vector)- build-depends: vector >= 0.12 && <0.13- if flag(base-transformers-1) && flag(base-transformers-2)- hs-source-dirs: src-none/vector+ build-depends: vector ==0.12.*++ if (flag(base-transformers-1) && flag(base-transformers-2))+ hs-source-dirs: src-none/vector+ else- if !flag(base-transformers-1) && !flag(base-transformers-2)+ if (!flag(base-transformers-1) && !flag(base-transformers-2)) hs-source-dirs: src-implicit/vector+ else hs-source-dirs: src-explicit/vector+ else- build-depends: vector >= 0.11.0.0 && <0.12- if !flag(base-transformers-1) && !flag(base-transformers-2)+ build-depends: vector >=0.11.0.0 && <0.12++ if (!flag(base-transformers-1) && !flag(base-transformers-2)) hs-source-dirs: src-implicit/vector+ else hs-source-dirs: src-explicit/vector
+ src-explicit/containers/Data/Sequence/Functor/Classes.hs view
@@ -0,0 +1,19 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Data.Sequence.Functor.Classes () where++import Data.Functor.Classes+import Data.Foldable (toList)+import Data.Sequence (Seq, length)++instance Eq1 Seq where+ liftEq eq m n =+ Data.Sequence.length m == Data.Sequence.length n &&+ liftEq eq (toList m) (toList n)++instance Ord1 Seq where+ liftCompare cmp m n =+ liftCompare cmp (toList m) (toList n)++instance Show1 Seq where+ liftShowsPrec sp sl d m =+ showsUnaryWith (liftShowsPrec sp sl) "fromList" d (toList m)
+ src-explicit/containers/Data/Tree/Functor/Classes.hs view
@@ -0,0 +1,24 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Data.Tree.Functor.Classes () where++import Data.Functor.Classes+import Data.Monoid (Monoid (..))+import Data.Tree++instance Eq1 Tree where+ liftEq eq (Node a fa) (Node b fb) =+ eq a b && liftEq (liftEq eq) fa fb++instance Ord1 Tree where+ liftCompare cmp (Node a fa) (Node b fb) =+ cmp a b `mappend` liftCompare (liftCompare cmp) fa fb++instance Show1 Tree where+ liftShowsPrec sp sl =+ let go _ (Node a fa) =+ ("Node {rootLabel = " ++) .+ sp 0 a .+ (", subForest = " ++) .+ liftShowsPrec go (liftShowList sp sl) 0 fa .+ ('}':)+ in go
+ src-implicit/containers/Data/Sequence/Functor/Classes.hs view
@@ -0,0 +1,9 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Data.Sequence.Functor.Classes () where++import Data.Functor.Classes+import Data.Sequence (Seq)++instance Eq1 Seq where eq1 = (==)+instance Ord1 Seq where compare1 = compare+instance Show1 Seq where showsPrec1 = showsPrec
+ src-implicit/containers/Data/Tree/Functor/Classes.hs view
@@ -0,0 +1,19 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Data.Tree.Functor.Classes () where++import Data.Functor.Classes+import Data.Tree (Tree(..))++instance Eq1 Tree where eq1 = (==)+instance Ord1 Tree where+ compare1 (Node a fa) (Node b fb) =+ compare a b `mappend` liftCompareList compare1 fa fb++liftCompareList :: (a -> a -> Ordering) -> [a] -> [a] -> Ordering+liftCompareList cmp = go+ where go [] [] = EQ+ go [] (_:_) = LT+ go (_:_) [] = GT+ go (a:as) (b:bs) = cmp a b `mappend` go as bs++instance Show1 Tree where showsPrec1 = showsPrec
+ src-none/containers/Data/Sequence/Functor/Classes.hs view
@@ -0,0 +1,1 @@+module Data.Sequence.Functor.Classes () where
+ src-none/containers/Data/Tree/Functor/Classes.hs view
@@ -0,0 +1,1 @@+module Data.Tree.Functor.Classes () where