I would like to throw something to the discussion. In UHC's build system a tool called Shuffle is used: http://foswiki.cs.uu.nl/foswiki/Ehc/ShuffleDocumentation

It has three nice properties which I think could fit well with the problem:
- You can define variants of code with given numbers and names, and then ask the tool to produce the output file. Something a bit better than CPP itself.
- It understands some Haskell semantics. In particular, you can state functions imported or exported by each chunk (see http://foswiki.cs.uu.nl/foswiki/Ehc/ShuffleDocumentation#A_1.2_Output_specific_configuration) and the tool takes care of building up the module declaration on top of the file.
- It ships with a hook to integrate with Cabal (https://hackage.haskell.org/package/shuffle-0.1.3.3/docs/Distribution-Simple-Shuffle.html).

Just my two cents.

2015-10-09 3:31 GMT+02:00 Richard Eisenberg <eir@cis.upenn.edu>:


On Oct 8, 2015, at 1:05 PM, Richard Eisenberg <eir@cis.upenn.edu> wrote:
>
> My loose following of the interweaved threads has led me to this same conclusion. Have you paid close enough attention to list exactly what these changes should be? I have not. But I'd love to find a general solution to the migration problem so that we can continue to tinker with our beloved language without fear of flames burning down the house.

I should have been more explicit. I was more thinking of a multi-tiered warning system, where we decide, as a community, not to be embarrassed by warnings of severity less than X. When putting a DEPRECATED pragma on a definition, we could then give an indication of how soon we expect the definition to be gone.

I was not thinking of the sort of "smart" behavior that Joachim wrote about. I want my programs to do exactly what I say -- compilers should only be so clever.

Richard
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe