| This is great! However, I don't understand why:
| 'incL_afU',
| '$dNum_alp',
| 'fromInteger_alm',
| 'lit_al2' and
| '+_al3' are all listed under the same letrec?

The desugarer simply does whatever is easiest, leaving it to the simplifier to 
untangle the resulting dependencies. Doubtless we could make the desugarer more 
complicated, but doing so would make the simplifier no simpler (since it must 
do dependency analysis anyway).  Hence the current story.

| I would really like the output of 'Desugar.deSugar' to be like the latter.
| Because than I can apply some beta-reductions to get rid of the non-recursive
| lets and use that as input for the rest of my project...

The bit that does the dependency analysis is called the Occurrence Analyser.  
Its in compiler/simplCore/OccAnal.  A single run of the occurrence analyser 
will produce a fully-dependency-analysed program. Maybe that's what you want?

Simon
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to