From: simonpj Date: Tue, 27 May 2003 12:47:55 +0000 (+0000) Subject: [project @ 2003-05-27 12:47:55 by simonpj] X-Git-Tag: Approx_11550_changesets_converted~859 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=596f0292b91b90fc13e80c17217c5fbd11658371;p=ghc-hetmet.git [project @ 2003-05-27 12:47:55 by simonpj] Track changes in Generics.hs --- diff --git a/ghc/compiler/typecheck/TcGenDeriv.lhs b/ghc/compiler/typecheck/TcGenDeriv.lhs index 3b5d2fe..37d8212 100644 --- a/ghc/compiler/typecheck/TcGenDeriv.lhs +++ b/ghc/compiler/typecheck/TcGenDeriv.lhs @@ -1064,9 +1064,8 @@ we generate gfoldl k z T2 = z T2 -- ToDo: add gmapT,Q,M, gfoldr - gunfold k z _ (Constr "T1") = k (k (z T1)) - gunfold k z _ (Constr "T2") = z T2 - gunfold _ _ e _ = e + gunfold k z (Constr "T1") = k (k (z T1)) + gunfold k z (Constr "T2") = z T2 conOf (T1 _ _) = Constr "T1" conOf T2 = Constr "T2" @@ -1094,13 +1093,12 @@ gen_Data_binds tycon mk_k_app e v = HsPar (mkHsOpApp e k_RDR (HsVar v)) ------------ gunfold - gunfold_bind = mk_FunMonoBind tycon_loc gunfold_RDR (map gunfold_eqn data_cons ++ [catch_all]) - gunfold_eqn con = ([VarPat k_RDR, VarPat z_RDR, wildPat, + gunfold_bind = mk_FunMonoBind tycon_loc gunfold_RDR (map gunfold_eqn data_cons) + gunfold_eqn con = ([VarPat k_RDR, VarPat z_RDR, ConPatIn constr_RDR (PrefixCon [LitPat (mk_constr_string con)])], apN (dataConSourceArity con) (\e -> HsVar k_RDR `HsApp` e) (z_Expr `HsApp` HsVar (getRdrName con))) - catch_all = ([wildPat, wildPat, VarPat e_RDR, wildPat], HsVar e_RDR) mk_constr_string con = mkHsString (occNameUserString (getOccName con)) ------------ conOf