data-default (empty) → 0.2
raw patch · 3 files changed
+50/−0 lines, 3 filesdep +basedep +containerssetup-changed
Dependencies added: base, containers
Files
- Data/Default.hs +32/−0
- Setup.lhs +4/−0
- data-default.cabal +14/−0
+ Data/Default.hs view
@@ -0,0 +1,32 @@+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'.+ Default(..)+) where++import Data.Ratio+import qualified Data.Set as S+import qualified Data.Map as M++-- | 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 Int where def = 0+instance Default Integer where def = 0+instance Default Float where def = 0+instance Default Double where def = 0+instance (Integral a) => Default (Ratio a) where def = 0++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
+ Setup.lhs view
@@ -0,0 +1,4 @@+#!/usr/bin/env runhaskell+> import Distribution.Simple+> main :: IO ()+> main = defaultMain
+ data-default.cabal view
@@ -0,0 +1,14 @@+Name: data-default+Version: 0.2+Cabal-Version: >= 1.2+Category: Data+Synopsis: A class for types with a default value+Build-Type: Simple+License: BSD3+Author: Lukas Mai+Maintainer: <l.mai@web.de>++Library+ Build-Depends: base, containers+ Exposed-Modules: Data.Default+ Ghc-Options: -Wall -O2