Sergey:
>To separate a sublanguage of Haskell given by the corresponding
>compilation key (say, -domExt ) or, maybe, by the compiler pragma.
>This sublanguage allows the compiler to replace any function f with
>the function f' being the extension for f.
This was discussed on the list a while ago, right? I remember Arvind arguing
for this kind of transformation. I also think there is a need for it, or
rather for a way to more in general tell the compiler that it is OK to use
"almost correct" transformations, which need not be just extending the
domain of a function. An example is to let the compiler consider addition of
floating-point numbers to be associative (which it really is not, just
approximately), which makes it possible to parallelise folds over it. This
transformation can be very important in HPC applications, but its
application requires the knowledge that the numerics doesn't go wrong.
An interesting question is how to specify these kinds of transformations for
the compiler in a flexible way.
Bj�rn Lisper