Replace some pushTcLevelM's with pushTcLevelM_
authorRyan Scott <ryan.gl.scott@gmail.com>
Tue, 21 Feb 2017 14:51:43 +0000 (09:51 -0500)
committerRyan Scott <ryan.gl.scott@gmail.com>
Tue, 21 Feb 2017 14:51:47 +0000 (09:51 -0500)
These occurrences of pushTcLevelM weren't using the resulting TcLevel,
so they can be replaced with the (ostensibly more efficient) pushTcLevelM_.

No change in behavior.

compiler/typecheck/TcDerivInfer.hs

index a28b0bc..e0d46dd 100644 (file)
@@ -246,7 +246,7 @@ inferConstraintsDAC cls tvs inst_tys
   = do { let gen_dms = [ (sel_id, dm_ty)
                        | (sel_id, Just (_, GenericDM dm_ty)) <- classOpItems cls ]
 
-       ; (theta_origins, _lvl) <- pushTcLevelM (mapM do_one_meth gen_dms)
+       ; theta_origins <- pushTcLevelM_ (mapM do_one_meth gen_dms)
             -- Yuk: the pushTcLevel is to match the one wrapping the call
             --      to mk_wanteds in simplifyDeriv.  If we omit this, the
             --      unification variables will wrongly be untouchable.
@@ -268,8 +268,8 @@ inferConstraintsDAC cls tvs inst_tys
                  gen_dm_ty' = substTyWith cls_tvs inst_tys gen_dm_ty
                  (dm_tvs, dm_theta, dm_tau) = tcSplitNestedSigmaTys gen_dm_ty'
 
-           ; ((subst, _meta_tvs), _lvl) <- pushTcLevelM $
-                                           newMetaTyVarsX empty_subst dm_tvs
+           ; (subst, _meta_tvs) <- pushTcLevelM_ $
+                                   newMetaTyVarsX empty_subst dm_tvs
                 -- Yuk: the pushTcLevel is to match the one in mk_wanteds
                 --      simplifyDeriv.  If we don't, the unification variables
                 --      will bogusly be untouchable.