- ; generic_extras_deriv <- mapM mkGenDerivExtras derTyDecls
- -- For the remaining types, if Generics is on, we need to
- -- generate both the instances and the extras, but only for the
- -- types we can represent.
- ; let repTyDecls = filter canDoGenerics allTyDecls
- ; let remTyDecls = filter (\x -> not (x `elem` derTyDecls)) repTyDecls
- ; generic_instances <- if xGenerics
- then mapM mkGenDerivSpec remTyDecls
- else return []
- ; generic_extras_flag <- if xGenerics
- then mapM mkGenDerivExtras remTyDecls
- else return []
- -- Merge and return everything
- ; {- pprTrace "allTyDecls" (ppr allTyDecls) $
- pprTrace "derTyDecls" (ppr derTyDecls) $
- pprTrace "repTyDecls" (ppr repTyDecls) $
- pprTrace "remTyDecls" (ppr remTyDecls) $
- pprTrace "xGenerics" (ppr xGenerics) $
- pprTrace "xDeriveRep" (ppr xDeriveRepresentable) $
- pprTrace "all_tydata" (ppr all_tydata) $
- pprTrace "eqns1" (ppr eqns1) $
- pprTrace "eqns2" (ppr eqns2) $
--}
- return ( eqns1 ++ eqns2 ++ generic_instances
- , generic_extras_deriv ++ generic_extras_flag) }
+ ; {- pprTrace "sel_tydata" (ppr sel_tydata) $
+ pprTrace "sel_deriv_decls" (ppr sel_deriv_decls) $
+ pprTrace "derTyDecls" (ppr derTyDecls) $
+ pprTrace "deriv_decls" (ppr deriv_decls) $ -}
+ mapM mkGenDerivExtras derTyDecls }
+
+ -- Merge and return
+ ; return ( eqns1 ++ eqns2, generic_extras_deriv) }