| 196 | | merge _ old = case old of |
| 197 | | PEConstant{ pe_proto = MkRef (ICode oldCV) } |
| 198 | | | Just (mc :: VMultiCode) <- fromTypeable oldCV -> protoEntry |
| 199 | | { pe_proto = MkRef . ICode $ protoCode |
| 200 | | { mc_assoc = code_assoc c `mappend` code_assoc mc |
| 201 | | , mc_variants = Set.insert var (mc_variants mc) |
| 202 | | , mc_signature = if length (mc_signature mc) == length (code_params c) |
| 203 | | then code_params c |
| 204 | | else [defaultArrayParam] |
| 205 | | } |
| | 196 | merge :: PadEntry -> PadEntry -> PadEntry |
| | 197 | merge _ PEConstant{ pe_proto = MkRef (ICode oldCV) } |
| | 198 | | Just (mc :: VMultiCode) <- fromTypeable oldCV |
| | 199 | = protoEntry |
| | 200 | { pe_proto = MkRef . ICode $ protoCode |
| | 201 | { mc_assoc = code_assoc c `mappend` code_assoc mc |
| | 202 | , mc_variants = Set.insert var (mc_variants mc) |
| | 203 | , mc_signature = if length (mc_signature mc) == length (code_params c) |
| | 204 | then code_params c |
| | 205 | else [defaultArrayParam] |