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
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to