diff --git a/ghc/compiler/basicTypes/Var.lhs b/ghc/compiler/basicTypes/Var.lhs
index 54f010cc94119b1795d0a681e03019c81c4ee03e..793cfc99547acf11dfadcbf3af072edbc016d864 100644
--- a/ghc/compiler/basicTypes/Var.lhs
+++ b/ghc/compiler/basicTypes/Var.lhs
@@ -170,24 +170,19 @@ mkSysTyVar uniq kind = Var { varName    = name
 		       name = mkSysLocalName uniq SLIT("t")
 
 newMutTyVar :: Name -> Kind -> IO TyVar
-newMutTyVar name kind = 
-  do loc <- newIORef Nothing
-     return (Var { varName    = name
-		 , realUnique = getKey (nameUnique name)
-		 , varType    = kind
-		 , varDetails = MutTyVar loc False
-		 , varInfo    = pprPanic "newMutTyVar" (ppr name)
-		 })
+newMutTyVar name kind = newTyVar name kind False
 
 newSigTyVar :: Name -> Kind -> IO TyVar
-newSigTyVar name kind = 
-  do loc <- newIORef Nothing
-     return (Var { varName    = name 
-		 , realUnique = getKey (nameUnique name)
-		 , varType    = kind
-		 , varDetails = MutTyVar loc True
-		 , varInfo    = pprPanic "newSigTyVar" (ppr name)
-		 })
+newSigTyVar name kind = newTyVar name kind True
+
+newTyVar name kind is_sig
+ = do loc <- newIORef Nothing
+      return (Var { varName    = name
+		  , realUnique = getKey (nameUnique name)
+		  , varType    = kind
+		  , varDetails = MutTyVar loc is_sig
+		  , varInfo    = pprPanic "newMutTyVar" (ppr name)
+		  })
 
 readMutTyVar :: TyVar -> IO (Maybe Type)
 readMutTyVar (Var {varDetails = MutTyVar loc _}) = readIORef loc