diff --git a/ghc/compiler/basicTypes/DataCon.lhs b/ghc/compiler/basicTypes/DataCon.lhs index ffa98ea621269f3a73e48c5ab27970fcc247649e..d8c0935cb57cfa9e4f2e9f988c91d6514a9fa189 100644 --- a/ghc/compiler/basicTypes/DataCon.lhs +++ b/ghc/compiler/basicTypes/DataCon.lhs @@ -265,8 +265,8 @@ maybe_unpack_field set ty strict maybe_unpack_fields :: UniqSet TyCon -> [(Type,StrictnessMark)] -> Maybe [Type] maybe_unpack_fields set tys - | any isNothing unpacked_fields = Nothing - | otherwise = Just (concat (catMaybes unpacked_fields)) + | all isJust unpacked_fields = Just (concat (catMaybes unpacked_fields)) + | otherwise = Nothing where unpacked_fields = map (\(ty,str) -> maybe_unpack_field set ty str) tys \end{code}