Replace some `length . filter` with `count`
authorÖmer Sinan Ağacan <omeragacan@gmail.com>
Fri, 5 Aug 2016 20:58:02 +0000 (20:58 +0000)
committerÖmer Sinan Ağacan <omeragacan@gmail.com>
Fri, 5 Aug 2016 20:58:02 +0000 (20:58 +0000)
compiler/coreSyn/CoreSubst.hs
compiler/simplCore/SAT.hs
compiler/typecheck/TcExpr.hs

index 7723b71..ffd8c2a 100644 (file)
@@ -1434,7 +1434,7 @@ exprIsLambda_maybe (in_scope_set, id_unf) (Cast casted_e co)
 -- Another attempt: See if we find a partial unfolding
 exprIsLambda_maybe (in_scope_set, id_unf) e
     | (Var f, as, ts) <- collectArgsTicks tickishFloatable e
-    , idArity f > length (filter isValArg as)
+    , idArity f > count isValArg as
     -- Make sure there is hope to get a lambda
     , Just rhs <- expandUnfolding_maybe (id_unf f)
     -- Optimize, for beta-reduction
index 38ae144..923d3a4 100644 (file)
@@ -373,7 +373,7 @@ saTransformMaybe binder maybe_arg_staticness rhs_binders rhs_body
   where
     should_transform staticness = n_static_args > 1 -- THIS IS THE DECISION POINT
       where
-        n_static_args = length (filter isStaticValue staticness)
+        n_static_args = count isStaticValue staticness
 
 saTransform :: Id -> SATInfo -> [Id] -> CoreExpr -> SatM CoreBind
 saTransform binder arg_staticness rhs_binders rhs_body
index 54d0254..dc1a90f 100644 (file)
@@ -2455,7 +2455,7 @@ badFieldsUpd rbinds data_cons
       sortBy (compare `on` fst) .
       map (\ item@(_, membershipRow) -> (countTrue membershipRow, item))
 
-    countTrue = length . filter id
+    countTrue = count id
 
 {-
 Note [Finding the conflicting fields]