@@ -623,6 +623,11 @@ expandParams dec ps ns infs tm = en tm
623623 = let n' = mkShadow n in
624624 PLet n' (en ty) (en v) (en (shadow n n' s))
625625 | otherwise = PLet n (en ty) (en v) (en s)
626+ -- FIXME: Should only do this in a type signature!
627+ en (PDPair f (PRef f' n) t r)
628+ | n `elem` (map fst ps ++ ns) && t /= Placeholder
629+ = let n' = mkShadow n in
630+ PDPair f (PRef f' n') (en t) (en (shadow n n' r))
626631 en (PEq f l r) = PEq f (en l) (en r)
627632 en (PRewrite f l r g) = PRewrite f (en l) (en r) (fmap en g)
628633 en (PTyped l r) = PTyped (en l) (en r)