packages feed

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 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