Make literals in the syntax tree strict
authorIan Lynagh <igloo@earth.li>
Mon, 18 Feb 2008 18:34:24 +0000 (18:34 +0000)
committerIan Lynagh <igloo@earth.li>
Mon, 18 Feb 2008 18:34:24 +0000 (18:34 +0000)
compiler/hsSyn/HsLit.lhs

index 51455e2..a85bc62 100644 (file)
@@ -55,9 +55,9 @@ instance Eq HsLit where
   _                 == _                 = False
 
 data HsOverLit id      -- An overloaded literal
   _                 == _                 = False
 
 data HsOverLit id      -- An overloaded literal
-  = HsIntegral   Integer    (SyntaxExpr id)  PostTcType        -- Integer-looking literals;
-  | HsFractional Rational   (SyntaxExpr id)  PostTcType        -- Frac-looking literals
-  | HsIsString   FastString (SyntaxExpr id)  PostTcType        -- String-looking literals
+  = HsIntegral   !Integer    (SyntaxExpr id)  PostTcType       -- Integer-looking literals;
+  | HsFractional !Rational   (SyntaxExpr id)  PostTcType       -- Frac-looking literals
+  | HsIsString   !FastString (SyntaxExpr id)  PostTcType       -- String-looking literals
   -- Before type checking, the SyntaxExpr is 'fromInteger' or 'fromRational'
   -- After type checking, it is (fromInteger 3) or lit_78; that is,
   -- the expression that should replace the literal.
   -- Before type checking, the SyntaxExpr is 'fromInteger' or 'fromRational'
   -- After type checking, it is (fromInteger 3) or lit_78; that is,
   -- the expression that should replace the literal.