[Haskell-cafe] Re: Adding a field to a data record
Henry Laxen
nadine.and.henry at pobox.com
Tue Jul 28 10:47:05 EDT 2009
Malcolm Wallace <Malcolm.Wallace <at> cs.york.ac.uk> writes:
>
> > and perhaps use emacs to
> > query-replace all the Foo1's back to Foo's
>
> At least this bit can be avoided easily enough, by using
> module qualification during the conversion process.
>
> module Original (Foo(..)) where
> data Foo = Foo { ... y :: Int } deriving ...
>
> module New (Foo(..)) where
> data Foo = Foo { ... y, z :: Int } deriving ...
>
> module Convert where
> import Original as Old
> import New as New
> newFoo :: Old.Foo -> New.Foo
> newFoo old{..} = New.Foo { a=a, b=b, ... z=1 }
>
> Finally rename module New.
>
> Regards,
> Malcolm
>
Thanks Malcolm, yes, that keeps me out of emacs, but the part I would really
like to avoid is writing the New.Foo { a=a, b=b, ... z=1 } part, where the field
names are many, long, and varied. Yes, I could cut and paste, but I'm hoping
for a "better way." Thanks.
Best wishes,
Henry Laxen
More information about the Haskell-Cafe
mailing list