diff options
Diffstat (limited to 'compiler/GHC/Core')
-rw-r--r-- | compiler/GHC/Core/Opt/Pipeline.hs | 2 | ||||
-rw-r--r-- | compiler/GHC/Core/Opt/SpecConstr.hs | 4 | ||||
-rw-r--r-- | compiler/GHC/Core/TyCon.hs | 4 | ||||
-rw-r--r-- | compiler/GHC/Core/Utils.hs | 3 |
4 files changed, 6 insertions, 7 deletions
diff --git a/compiler/GHC/Core/Opt/Pipeline.hs b/compiler/GHC/Core/Opt/Pipeline.hs index 3e9470dc88..884dcbf44d 100644 --- a/compiler/GHC/Core/Opt/Pipeline.hs +++ b/compiler/GHC/Core/Opt/Pipeline.hs @@ -885,7 +885,7 @@ Old "solution": of iterateList in the first place But in principle the user *might* want rules that only apply to the Id -he says. And inline pragmas are similar +they say. And inline pragmas are similar {-# NOINLINE f #-} f = local local = <stuff> diff --git a/compiler/GHC/Core/Opt/SpecConstr.hs b/compiler/GHC/Core/Opt/SpecConstr.hs index ab36ad8f22..9dd4ab895b 100644 --- a/compiler/GHC/Core/Opt/SpecConstr.hs +++ b/compiler/GHC/Core/Opt/SpecConstr.hs @@ -1744,8 +1744,8 @@ Note [spec_usg includes rhs_usg] In calls to 'specialise', the returned ScUsage must include the rhs_usg in the passed-in SpecInfo, unless there are no calls at all to the function. -The caller can, indeed must, assume this. He should not combine in rhs_usg -himself, or he'll get rhs_usg twice -- and that can lead to an exponential +The caller can, indeed must, assume this. They should not combine in rhs_usg +themselves, or they'll get rhs_usg twice -- and that can lead to an exponential blowup of duplicates in the CallEnv. This is what gave rise to the massive performance loss in #8852. diff --git a/compiler/GHC/Core/TyCon.hs b/compiler/GHC/Core/TyCon.hs index ad455779b7..9982436429 100644 --- a/compiler/GHC/Core/TyCon.hs +++ b/compiler/GHC/Core/TyCon.hs @@ -224,8 +224,8 @@ See also Note [Wrappers for data instance tycons] in GHC.Types.Id.Make * Reply "yes" to isDataFamilyTyCon, and isFamilyTyCon -* The user does not see any "equivalent types" as he did with type - synonym families. He just sees constructors with types +* The user does not see any "equivalent types" as they did with type + synonym families. They just see constructors with types T1 :: T Int T2 :: Bool -> T Int diff --git a/compiler/GHC/Core/Utils.hs b/compiler/GHC/Core/Utils.hs index 076d5213d9..e980c560e0 100644 --- a/compiler/GHC/Core/Utils.hs +++ b/compiler/GHC/Core/Utils.hs @@ -1511,7 +1511,7 @@ Note [Expandable overloadings] Suppose the user wrote this {-# RULE forall x. foo (negate x) = h x #-} f x = ....(foo (negate x)).... -He'd expect the rule to fire. But since negate is overloaded, we might +They'd expect the rule to fire. But since negate is overloaded, we might get this: f = \d -> let n = negate d in \x -> ...foo (n x)... So we treat the application of a function (negate in this case) to a @@ -2621,4 +2621,3 @@ isUnsafeEqualityProof e = idName v == unsafeEqualityProofName | otherwise = False - |