1 2-- | This module provides default values for many types. 3-- To use the default value simply write 'def'. 4module System.Console.CmdArgs.Default where 5 6import Data.Int 7import Data.Word 8 9-- | Class for default values. 10class Default a where 11 -- | Provide a default value, such as @()@, @False@, @0@, @[]@, @Nothing@. 12 def :: a 13 14instance Default () where def = () 15instance Default Bool where def = False 16instance Default Int where def = 0 17instance Default Integer where def = 0 18instance Default Float where def = 0 19instance Default Double where def = 0 20instance Default [a] where def = [] 21instance Default (Maybe a) where def = Nothing 22 23instance Default Int8 where def = 0 24instance Default Int16 where def = 0 25instance Default Int32 where def = 0 26instance Default Int64 where def = 0 27instance Default Word where def = 0 28instance Default Word8 where def = 0 29instance Default Word16 where def = 0 30instance Default Word32 where def = 0 31instance Default Word64 where def = 0 32 33-- EXPANDY: $(2\10 instance ($(1,$ Default a$)) => Default ($(1,$ a$)) where def = ($(1,$ def))) 34instance (Default a1,Default a2) => Default (a1,a2) where def = (def,def) 35instance (Default a1,Default a2,Default a3) => Default (a1,a2,a3) where def = (def,def,def) 36instance (Default a1,Default a2,Default a3,Default a4) => Default (a1,a2,a3,a4) where def = (def,def,def,def) 37instance (Default a1,Default a2,Default a3,Default a4,Default a5) => Default (a1,a2,a3,a4,a5) where def = (def,def,def,def,def) 38instance (Default a1,Default a2,Default a3,Default a4,Default a5,Default a6) => Default (a1,a2,a3,a4,a5,a6) where def = (def,def,def,def,def,def) 39instance (Default a1,Default a2,Default a3,Default a4,Default a5,Default a6,Default a7) => Default (a1,a2,a3,a4,a5,a6,a7) where def = (def,def,def,def,def,def,def) 40instance (Default a1,Default a2,Default a3,Default a4,Default a5,Default a6,Default a7,Default a8) => Default (a1,a2,a3,a4,a5,a6,a7,a8) where def = (def,def,def,def,def,def,def,def) 41instance (Default a1,Default a2,Default a3,Default a4,Default a5,Default a6,Default a7,Default a8,Default a9) => Default (a1,a2,a3,a4,a5,a6,a7,a8,a9) where def = (def,def,def,def,def,def,def,def,def) 42instance (Default a1,Default a2,Default a3,Default a4,Default a5,Default a6,Default a7,Default a8,Default a9,Default a10) => Default (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) where def = (def,def,def,def,def,def,def,def,def,def) 43