Skip to content
  • Simon Peyton Jones's avatar
    [project @ 2001-08-20 11:00:18 by simonpj] · e80b5e1a
    Simon Peyton Jones authored
    Remove the identity-substitution "optimisation" from zip_ty_env.
    
    	-- There used to be a special case for when
    	--	ty == TyVarTy tv
    	-- (a not-uncommon case) in which case the substitution was dropped.
    	-- But the type-tidier changes the print-name of a type variable without
    	-- changing the unique, and that led to a bug.   Why?  Pre-tidying, we had
    	-- a type {Foo t}, where Foo is a one-method class.  So Foo is really a newtype.
    	-- And it happened that t was the type variable of the class.  Post-tiding,
    	-- it got turned into {Foo t2}.  The ext-core printer expanded this using
    	-- sourceTypeRep, but that said "Oh, t == t2" because they have the same unique,
    	-- and so generated a rep type mentioning t not t2.
    	--
    	-- Simplest fix is to nuke the "optimisation"
    e80b5e1a