data-default-extra 0.0.1 → 0.1.0
raw patch · 6 files changed
+58/−19 lines, 6 filesdep −data-default-instances-basedep ~data-default-classdep ~data-default-instances-new-basePVP ok
version bump matches the API change (PVP)
Dependencies removed: data-default-instances-base
Dependency ranges changed: data-default-class, data-default-instances-new-base
API changes (from Hackage documentation)
Files
- ChangeLog.md +9/−0
- LICENSE +1/−1
- README.md +27/−7
- data-default-extra.cabal +6/−6
- src/Data/Default.hs +2/−3
- src/Data/Default/Generic.hs +13/−2
ChangeLog.md view
@@ -7,6 +7,15 @@ * Uploaded to [Hackage][]: <http://hackage.haskell.org/package/data-default-extra-0.0.1> +## Version 0.1.0++* Support for `data-default-class ==0.1.*` and related instance modules.+* Avoiding dependency on `data-default-instances-base` when building with+ `data-default-class >=0.1.2`.+* Module `Data.Default.Generic` is now deprecated, since package+ `data-default-class >=0.1` supports GHC Generics on its own.++ [Hackage]: http://hackage.haskell.org/
LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2016, Peter Trško+Copyright (c) 2016-2017 Peter Trško All rights reserved.
README.md view
@@ -1,7 +1,7 @@ # data-default-extra -[][data-default-instances-extra]-[](http://packdeps.haskellers.com/reverse/data-default-instances-extra)+[][data-default-extra]+[](http://packdeps.haskellers.com/reverse/data-default-extra) [][Haskell.org] [][tl;dr Legal: BSD3] @@ -53,14 +53,15 @@ ```Haskell {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DefaultSignatures #-} import GHC.Generics (Generic)+import Data.Default (Default) data MyType = MyType Int (Maybe String) deriving (Generic, Show) -instance Default MyType where- def = genericDef+instance Default MyType ``` ```@@ -68,7 +69,23 @@ MyType 0 Nothing ``` +One can also use `DeriveAnyClass` language extension: +```Haskell+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveAnyClass #-}++import GHC.Generics (Generic)+import Data.Default (Default)++data MyType = MyType Int (Maybe String)+ deriving (Default, Generic, Show)+```++Be aware that `DeriveAnyClass` doesn't work well together with+`GeneralizedNewtypeDeriving` on some versions of GHC. See [GHC issue #10598][]++ ## License The BSD 3-Clause License, see [LICENSE][] file for details.@@ -86,12 +103,15 @@ [data-default-class]: https://hackage.haskell.org/package/data-default "Hackage: data-default-class"-[data-default-instances-extra]:- https://hackage.haskell.org/package/data-default-instances-extra- "Package data-default-instances-extra on Hackage"+[data-default-extra]:+ https://hackage.haskell.org/package/data-default-extra+ "Package data-default-extra on Hackage" [GHC Generics]: https://wiki.haskell.org/GHC.Generics "GHC.Generics on HaskellWiki"+[GHC issue #10598]:+ https://ghc.haskell.org/trac/ghc/ticket/10598+ "GHC issue #10598: DeriveAnyClass and GND don't work well together" [Haskell.org]: http://www.haskell.org "The Haskell Programming Language"
data-default-extra.cabal view
@@ -1,5 +1,5 @@ name: data-default-extra-version: 0.0.1+version: 0.1.0 synopsis: A class for types with a default value. description: An alternative to@@ -40,13 +40,14 @@ license-file: LICENSE author: Peter Trško maintainer: peter.trsko@gmail.com-copyright: (c) 2016, Peter Trško+copyright: (c) 2016-2017 Peter Trško category: Data build-type: Simple cabal-version: >=1.10 extra-source-files: ChangeLog.md, README.md + flag with-bytestring description: Provide instances for (lazy and strict) ByteString, ByteString Builder and@@ -116,9 +117,8 @@ build-depends: base <6- , data-default-class ==0.0.*- , data-default-instances-base ==0.0.*- , data-default-instances-new-base ==0.0.*+ , data-default-class >=0.0.1 && <0.2+ , data-default-instances-new-base >=0.0.1 && <0.2 if impl(ghc <7.6) -- GHC.Generics moved from ghc-prim to base with GHC 7.6 release.@@ -165,4 +165,4 @@ source-repository this type: git location: git://github.com/trskop/data-default-extra.git- tag: v0.0.1+ tag: class-0.1.2
src/Data/Default.hs view
@@ -3,12 +3,12 @@ -- | -- Module: $HEADER$ -- Description: A class for types with a default value.--- Copyright: (c) 2016, Peter Trško+-- Copyright: (c) 2016-2017 Peter Trško -- License: BSD3 -- -- Maintainer: peter.trsko@gmail.com -- Stability: stable--- Portability: CPP, NoImplicitPrelude+-- Portability: GHC specific language extensions. -- -- A class for types with a default value. module Data.Default@@ -48,7 +48,6 @@ where import Data.Default.Class (Default(def))-import Data.Default.Instances.Base () import Data.Default.Instances.Base.New () #ifdef WITH_bytestring
src/Data/Default/Generic.hs view
@@ -1,22 +1,33 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TypeOperators #-} -- | -- Module: $HEADER$ -- Description: Create Default instances using GHC Generics.--- Copyright: (c) 2016, Peter Trško+-- Copyright: (c) 2016-2017 Peter Trško -- License: BSD3 -- -- Maintainer: peter.trsko@gmail.com -- Stability: stable--- Portability: FlexibleContexts, NoImplicitPrelude, TypeOperators+-- Portability: GHC specific language extension. --+-- __DEPRECATED__ because package+-- <https://hackage.haskell.org/package/data-default-class data-default-class>+-- now supports GHC Generics.+-- -- Create 'Default' instances using GHC Generics. For more information see: -- -- * <https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ GHC User's Guide> -- -- * <https://wiki.haskell.org/GHC.Generics HaskellWiki: GHC.Generics>+--+-- Package+-- <https://hackage.haskell.org/package/data-default-class data-default-class>+-- supports GHC Generics since version 0.1.0, but it is still useful to have+-- 'GDefault' and 'genericDef' exposed for more complex cases. module Data.Default.Generic+ {-# DEPRECATED "Use DefaultSignatures or DeriveAnyClass language extension instead." #-} ( -- | Rule of thumb, if generic instance definition, contains more code then -- the explicit definition, then use the explicit definition.