X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FbasicTypes%2FDataCon.lhs;h=dbc63552045b56f1d8182c09ea49bcc4e16bfa11;hb=af2db474c2bb80e29924430e3c730bc217e55189;hp=9ce966ee7743dbbfff37e6288f352bd5f5d10374;hpb=00b6d2567426ec52a113b1d3687e1d61368cafda;p=ghc-hetmet.git diff --git a/compiler/basicTypes/DataCon.lhs b/compiler/basicTypes/DataCon.lhs index 9ce966e..dbc6355 100644 --- a/compiler/basicTypes/DataCon.lhs +++ b/compiler/basicTypes/DataCon.lhs @@ -766,8 +766,9 @@ splitProductType str ty deepSplitProductType_maybe ty = do { (res@(tycon, tycon_args, _, _)) <- splitProductType_maybe ty ; let {result - | isClosedNewTyCon tycon && not (isRecursiveTyCon tycon) - = deepSplitProductType_maybe (newTyConInstRhs tycon tycon_args) + | Just (ty', _co) <- instNewTyCon_maybe tycon tycon_args + , not (isRecursiveTyCon tycon) + = deepSplitProductType_maybe ty' -- Ignore the coercion? | isNewTyCon tycon = Nothing -- cannot unbox through recursive -- newtypes nor through families | otherwise = Just res}