data-default 0.2.0.1 → 0.3.0
raw patch · 2 files changed
+34/−8 lines, 2 filesdep +dlistPVP ok
version bump matches the API change (PVP)
Dependencies added: dlist
API changes (from Hackage documentation)
+ Data.Default: instance (Default a, Default b) => Default (a, b)
+ Data.Default: instance (Default a, Default b, Default c) => Default (a, b, c)
+ Data.Default: instance (Default a, Default b, Default c, Default d) => Default (a, b, c, d)
+ Data.Default: instance (Default a, Default b, Default c, Default d, Default e) => Default (a, b, c, d, e)
+ Data.Default: instance Default (DList a)
+ Data.Default: instance Default (Endo a)
+ Data.Default: instance Default (First a)
+ Data.Default: instance Default (IntMap v)
+ Data.Default: instance Default (Last a)
+ Data.Default: instance Default (Seq a)
+ Data.Default: instance Default All
+ Data.Default: instance Default Any
+ Data.Default: instance Default IntSet
+ Data.Default: instance Default Ordering
+ Data.Default: instance Default a => Default (Dual a)
+ Data.Default: instance Default a => Default (Tree a)
+ Data.Default: instance Num a => Default (Product a)
+ Data.Default: instance Num a => Default (Sum a)
Files
- Data/Default.hs +32/−6
- data-default.cabal +2/−2
Data/Default.hs view
@@ -1,23 +1,31 @@ module Data.Default ( -- | This module defines a class for types with a default value. Instances are -- provided for '()', 'S.Set', 'M.Map', 'Int', 'Integer', 'Float', 'Double',--- 'Ratio', 'Maybe', '[]', '->' and 'IO'.+-- and many others (see below). Default(..) ) where +import Data.Monoid import Data.Ratio import qualified Data.Set as S import qualified Data.Map as M+import Data.IntMap (IntMap)+import Data.IntSet (IntSet)+import Data.Sequence (Seq)+import Data.Tree (Tree(..))+import Data.DList (DList) -- | A class for types with a default value. class Default a where -- | The default value for this type. def :: a -instance Default () where def = ()- instance Default (S.Set v) where def = S.empty instance Default (M.Map k v) where def = M.empty+instance Default (IntMap v) where def = mempty+instance Default IntSet where def = mempty+instance Default (Seq a) where def = mempty+instance (Default a) => Default (Tree a) where def = Node def def instance Default Int where def = 0 instance Default Integer where def = 0@@ -25,8 +33,26 @@ instance Default Double where def = 0 instance (Integral a) => Default (Ratio a) where def = 0 +instance (Default r) => Default (e -> r) where def = const def+instance (Default a) => Default (IO a) where def = return def+ instance Default (Maybe a) where def = Nothing-instance Default [a] where def = [] -instance (Default r) => Default (e -> r) where def _ = def-instance (Default a) => Default (IO a) where def = return def+instance Default () where def = mempty+instance Default [a] where def = mempty+instance Default Ordering where def = mempty+instance Default Any where def = mempty+instance Default All where def = mempty+instance Default (Last a) where def = mempty+instance Default (First a) where def = mempty+instance (Num a) => Default (Sum a) where def = mempty+instance (Num a) => Default (Product a) where def = mempty+instance Default (Endo a) where def = mempty++instance Default (DList a) where def = mempty++instance (Default a) => Default (Dual a) where def = Dual def+instance (Default a, Default b) => Default (a, b) where def = (def, def)+instance (Default a, Default b, Default c) => Default (a, b, c) where def = (def, def, def)+instance (Default a, Default b, Default c, Default d) => Default (a, b, c, d) where def = (def, def, def, def)+instance (Default a, Default b, Default c, Default d, Default e) => Default (a, b, c, d, e) where def = (def, def, def, def, def)
data-default.cabal view
@@ -1,5 +1,5 @@ Name: data-default-Version: 0.2.0.1+Version: 0.3.0 Cabal-Version: >= 1.2 Category: Data Synopsis: A class for types with a default value@@ -10,6 +10,6 @@ Maintainer: <l.mai@web.de> Library- Build-Depends: base >=2 && <5, containers+ Build-Depends: base >=2 && <5, containers, dlist Exposed-Modules: Data.Default Ghc-Options: -Wall -O2