Another round of External Core fixes
[ghc-hetmet.git] / compiler / parser / Parser.y.pp
index 06e55ff..32ab991 100644 (file)
@@ -824,7 +824,7 @@ where_inst :: { Located (OrdList (LHsDecl RdrName)) }       -- Reversed
 decls  :: { Located (OrdList (LHsDecl RdrName)) }      
        : decls ';' decl                { let { this = unLoc $3;
                                     rest = unLoc $1;
-                                    these = unLoc $1 `appOL` unLoc $3 }
+                                    these = rest `appOL` this }
                               in rest `seq` this `seq` these `seq`
                                     LL these }
        | decls ';'                     { LL (unLoc $1) }
@@ -1231,7 +1231,7 @@ decl      :: { Located (OrdList (LHsDecl RdrName)) }
         | docdecl                       { LL $ unitOL $1 }
 
 rhs    :: { Located (GRHSs RdrName) }
-       : '=' exp wherebinds    { L (comb3 $1 $2 $3) $ GRHSs (unguardedRHS $2) (unLoc $3) }
+       : '=' exp wherebinds    { sL (comb3 $1 $2 $3) $ GRHSs (unguardedRHS $2) (unLoc $3) }
        | gdrhs wherebinds      { LL $ GRHSs (reverse (unLoc $1)) (unLoc $2) }
 
 gdrhs :: { Located [LGRHS RdrName] }
@@ -1441,7 +1441,7 @@ list :: { LHsExpr RdrName }
        | texp '|' flattenedpquals      { sL (comb2 $1 $>) $ mkHsDo ListComp (unLoc $3) $1 }
 
 lexps :: { Located [LHsExpr RdrName] }
-       : lexps ',' texp                { LL ($3 : unLoc $1) }
+       : lexps ',' texp                { LL (((:) $! $3) $! unLoc $1) }
        | texp ',' texp                 { LL [$3,$1] }
 
 -----------------------------------------------------------------------------