[code cleanups and tweak strictness and UNPACK pragmas
John Meacham <john@repetae.net>**20090306014027
 Ignore-this: 4894fdf4c9959a33708f4e48e7165287
] hunk ./FrontEnd/Representation.hs 43
-import StringTable.Atom
hunk ./FrontEnd/Representation.hs 65
-data Type  = TVar { typeVar :: {-# UNPACK #-} !Tyvar }
-           | TCon { typeCon :: !Tycon }
-           | TAp  Type Type
-           | TArrow Type Type
-           | TForAll { typeArgs :: [Tyvar], typeBody :: (Qual Type) }
-           | TExists { typeArgs :: [Tyvar], typeBody :: (Qual Type) }
+data Type  = TVar     { typeVar :: !Tyvar }
+           | TCon     { typeCon :: !Tycon }
+           | TAp      Type Type
+           | TArrow   Type Type
+           | TForAll  { typeArgs :: [Tyvar], typeBody :: (Qual Type) }
+           | TExists  { typeArgs :: [Tyvar], typeBody :: (Qual Type) }
hunk ./FrontEnd/Representation.hs 76
-data MetaVar = MetaVar { metaUniq :: !Int, metaKind :: Kind, metaRef :: (IORef (Maybe Type)), metaType :: MetaVarType } -- ^ used only in typechecker
+-- | metavars are used in type checking
+data MetaVar = MetaVar {
+    metaUniq :: {-# UNPACK #-} !Int,
+    metaKind :: Kind,
+    metaRef :: {-# UNPACK #-} !(IORef (Maybe Type)),
+    metaType :: MetaVarType
+    }
hunk ./FrontEnd/Representation.hs 124
-data Tyvar = Tyvar { tyvarName ::  !Name, tyvarKind :: Kind }
+data Tyvar = Tyvar { tyvarName ::  {-# UNPACK #-} !Name, tyvarKind :: Kind }