- ; 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
- ; return ( eqns1 ++ eqns2 -- ++ generic_instances
- , generic_extras_deriv {- ++ generic_extras_flag -}) }
+ ; mapM mkGenDerivExtras derTyDecls }
+
+ -- Merge and return
+ ; return ( eqns1 ++ eqns2, generic_extras_deriv) }