template-default

declaring Default instances just got even easier https://github.com/haskell-pkg-janitors/template-default

Latest on Hackage:0.1.2

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD3 licensed by Daniel Wagner
Maintained by Daniel Wagner

Declaring instances of the Default type class has always been pretty mechanical. This package makes the compiler do the mechanical bit. This has the benefit that even less thought is required, and the instance will automatically be corrected when the definition of the data type changes (say, to add more arguments to the constructor). Usage looks like this, for example:

(-# LANGUAGE TemplateHaskell #-)
import Data.Default.TH
data List a = Nil | Cons a (List a)
deriveDefault ''List

This example results in the following instance:

instance Data.Default.Default (List a_ad2) where
  Data.Default.def = Nil
Used by 1 package:
comments powered byDisqus