 
            It's effectively the exact same thing as your example but with the
default record put into a typeclass for convenience. Refactoring your
original post:
data Contract =  Contract {
                   currency  :: Currency
                 , payments  :: Double
                 , contracts :: [Contract]
               }
               deriving (Show)
instance Default Contract where
  def = Contract { currency = undefined, payments = undefined, contracts = [] }
one    :: Currency -> Contract
one c  =  def { currency = c, payments = 1}
and          :: Contract -> Contract -> Contract
(and) c1 c2  =  def { contracts = [c1, c2] }
It's a very simple package and provides some default instances for
your convenience. Use it if you like.
On Mon, Jul 18, 2011 at 3:47 PM, David Place 
Thanks for the pointer to Data.Default. I don't see how it applies in this case, though. The goal is to avoid mentioning the defaulted fields when constructing a record instance. Example?
____________________ David Place Owner, Panpipes Ho! LLC http://panpipesho.com d@vidplace.com
On Jul 18, 2011, at 1:45 AM, Christopher Done wrote:
On 18 July 2011 00:18, David Place
wrote: The way I often do this is to create an "ur" instance where all the fields have default values. Then to create an instance, I just do a "record update" of this instance.
For this there is Data.Default in data-default:
http://hackage.haskell.org/packages/archive/data-default/0.2.0.1/doc/html/Da...
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners
-- Regards, Austin