Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : 

http://hackage.haskell.org/trac/ghc/changeset/36daa53fef32cb43c39faa620dfb2d2cd1c9d213

>---------------------------------------------------------------

commit 36daa53fef32cb43c39faa620dfb2d2cd1c9d213
Author: Max Bolingbroke <batterseapo...@hotmail.com>
Date:   Thu Aug 4 11:25:02 2011 +0100

    When residualising a term to SDoc, wrap angle brackets around the focus

>---------------------------------------------------------------

 .../Supercompile/Evaluator/Residualise.hs          |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/compiler/supercompile/Supercompile/Evaluator/Residualise.hs 
b/compiler/supercompile/Supercompile/Evaluator/Residualise.hs
index f81f6f1..e255a6d 100644
--- a/compiler/supercompile/Supercompile/Evaluator/Residualise.hs
+++ b/compiler/supercompile/Supercompile/Evaluator/Residualise.hs
@@ -14,11 +14,12 @@ import qualified Data.Map as M
 
 
 residualiseState :: State -> (Deeds, Out [(Var, PrettyFunction)], Out FVedTerm)
-residualiseState = residualiseUnnormalisedState . denormalise
+residualiseState s = (deeds, floats_static, bindManyMixedLiftedness 
fvedTermFreeVars floats_nonstatic e)
+ where (deeds, floats_static, floats_nonstatic, e) = 
residualiseUnnormalisedState (denormalise s)
 
-residualiseUnnormalisedState :: UnnormalisedState -> (Deeds, Out [(Var, 
PrettyFunction)], Out FVedTerm)
-residualiseUnnormalisedState (deeds, heap, k, in_e) = (deeds, floats_static, e)
-  where (floats_static, e) = residualiseHeap heap (\ids -> residualiseStack 
ids k (residualiseTerm ids in_e))
+residualiseUnnormalisedState :: UnnormalisedState -> (Deeds, Out [(Var, 
PrettyFunction)], Out [(Var, FVedTerm)], Out FVedTerm)
+residualiseUnnormalisedState (deeds, heap, k, in_e) = (deeds, floats_static, 
floats_nonstatic, e)
+  where (floats_static, floats_nonstatic, e) = residualiseHeap heap (\ids -> 
residualiseStack ids k (residualiseTerm ids in_e))
 
 residualiseAnswer :: InScopeSet -> Answer -> Out FVedTerm
 residualiseAnswer ids = fvedTerm . detagAnnedTerm' . answerToAnnedTerm' ids
@@ -26,8 +27,8 @@ residualiseAnswer ids = fvedTerm . detagAnnedTerm' . 
answerToAnnedTerm' ids
 residualiseTerm :: InScopeSet -> In AnnedTerm -> Out FVedTerm
 residualiseTerm ids = detagAnnedTerm . renameIn (renameAnnedTerm ids)
 
-residualiseHeap :: Heap -> (InScopeSet -> ((Out [(Var, PrettyFunction)], Out 
[(Var, FVedTerm)]), Out FVedTerm)) -> (Out [(Var, PrettyFunction)], Out 
FVedTerm)
-residualiseHeap (Heap h ids) resid_body = (floats_static_h ++ floats_static_k, 
bindManyMixedLiftedness fvedTermFreeVars (floats_nonstatic_h ++ 
floats_nonstatic_k) e)
+residualiseHeap :: Heap -> (InScopeSet -> ((Out [(Var, PrettyFunction)], Out 
[(Var, FVedTerm)]), Out FVedTerm)) -> (Out [(Var, PrettyFunction)], Out [(Var, 
FVedTerm)], Out FVedTerm)
+residualiseHeap (Heap h ids) resid_body = (floats_static_h ++ floats_static_k, 
floats_nonstatic_h ++ floats_nonstatic_k, e)
   where (floats_static_h, floats_nonstatic_h) = residualisePureHeap ids h
         ((floats_static_k, floats_nonstatic_k), e) = resid_body ids
 
@@ -62,5 +63,6 @@ pPrintFullState :: State -> SDoc
 pPrintFullState = pPrintFullUnnormalisedState . denormalise
 
 pPrintFullUnnormalisedState :: UnnormalisedState -> SDoc
-pPrintFullUnnormalisedState state = text "Deeds:" <+> pPrint deeds $$ pPrint 
(map (first (PrettyDoc . pPrintBndr LetBind)) floats_static) $$ pPrint e
-  where (deeds, floats_static, e) = residualiseUnnormalisedState state
+pPrintFullUnnormalisedState state = text "Deeds:" <+> pPrint deeds $$ pPrint 
(map (first (PrettyDoc . pPrintBndr LetBind)) floats_static) $$ body
+  where (deeds, floats_static, floats_nonstatic, e) = 
residualiseUnnormalisedState state
+        body = pPrintPrecLetRec noPrec floats_nonstatic (PrettyDoc 
(angleBrackets (pPrint e)))



_______________________________________________
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to