diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2015-12-01 12:48:32 +0000 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2015-12-01 12:56:57 +0000 |
commit | 744d4b0086f9aac866b98227158a41125153e1e4 (patch) | |
tree | c06090c5d454aeffe3fee4fd4d242d760db34396 /compiler | |
parent | 57b995b83bc6f3483c0322fc13043e73e7f7e4ee (diff) | |
parent | 6dce643d1981f1ecba2b38f5932720385999244b (diff) | |
download | haskell-wip/spj-wildcard-refactor.tar.gz |
Merge remote-tracking branch 'origin/master' into wip/spj-wildcard-refactorwip/spj-wildcard-refactor
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/basicTypes/MkId.hs | 12 | ||||
-rw-r--r-- | compiler/hsSyn/HsTypes.hs | 2 | ||||
-rw-r--r-- | compiler/typecheck/TcTyDecls.hs | 6 |
3 files changed, 10 insertions, 10 deletions
diff --git a/compiler/basicTypes/MkId.hs b/compiler/basicTypes/MkId.hs index 989d79707e..8223f3340b 100644 --- a/compiler/basicTypes/MkId.hs +++ b/compiler/basicTypes/MkId.hs @@ -106,7 +106,7 @@ There are several reasons why an Id might appear in the wiredInIds: result type. -- sof 1/99] (3) Other error functions (rUNTIME_ERROR_ID) are wired in (a) because - the desugarer generates code that mentiones them directly, and + the desugarer generates code that mentions them directly, and (b) for the same reason as eRROR_ID (4) lazyId is wired in because the wired-in version overrides the @@ -390,7 +390,7 @@ mkDataConWorkId wkr_name data_con -- even if the data constructor is declared strict -- e.g. data T = MkT !(Int,Int) -- Why? Because the *wrapper* is strict (and its unfolding has case - -- expresssions that do the evals) but the *worker* itself is not. + -- expressions that do the evals) but the *worker* itself is not. -- If we pretend it is strict then when we see -- case x of y -> $wMkT y -- the simplifier thinks that y is "sure to be evaluated" (because @@ -655,7 +655,7 @@ dataConSrcToImplBang dflags fam_envs arg_ty = HsStrict --- | Wrappers/Workser and representation following Unpack/Strictness +-- | Wrappers/Workers and representation following Unpack/Strictness -- decisions dataConArgRep :: Type @@ -820,7 +820,7 @@ Because then we'd get an infinite number of arguments. Here is a more complicated case: data S = MkS {-# UNPACK #-} !T Int data T = MkT {-# UNPACK #-} !S Int -Each of S and T must decide independendently whether to unpack +Each of S and T must decide independently whether to unpack and they had better not both say yes. So they must both say no. Also behave conservatively when there is no UNPACK pragma @@ -835,7 +835,7 @@ because Int is non-recursive. Note [Unpack equality predicates] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -If we have a GADT with a contructor C :: (a~[b]) => b -> T a +If we have a GADT with a constructor C :: (a~[b]) => b -> T a we definitely want that equality predicate *unboxed* so that it takes no space at all. This is easily done: just give it an UNPACK pragma. The rest of the unpack/repack code does the @@ -993,7 +993,7 @@ mkFCallId dflags uniq fcall ty strict_sig = mkClosedStrictSig (replicate arity topDmd) topRes -- the call does not claim to be strict in its arguments, since they - -- may be lifted (foreign import prim) and the called code doen't + -- may be lifted (foreign import prim) and the called code doesn't -- necessarily force them. See Trac #11076. {- ************************************************************************ diff --git a/compiler/hsSyn/HsTypes.hs b/compiler/hsSyn/HsTypes.hs index f7883f24a4..ed4c3be44b 100644 --- a/compiler/hsSyn/HsTypes.hs +++ b/compiler/hsSyn/HsTypes.hs @@ -203,7 +203,7 @@ type LHsKind name = Located (HsKind name) -------------------------------------------------- -- LHsQTyVars -- The explicitly-quantified binders in a data/type declaration -SQua + type LHsTyVarBndr name = Located (HsTyVarBndr name) -- See Note [HsType binders] diff --git a/compiler/typecheck/TcTyDecls.hs b/compiler/typecheck/TcTyDecls.hs index eeecc93b2c..ab63e8c070 100644 --- a/compiler/typecheck/TcTyDecls.hs +++ b/compiler/typecheck/TcTyDecls.hs @@ -1007,9 +1007,9 @@ like sel :: T [a] -> a For naughty selectors we make a dummy binding sel = () -for naughty selectors, so that the later type-check will add them to the -environment, and they'll be exported. The function is never called, because -the tyepchecker spots the sel_naughty field. +so that the later type-check will add them to the environment, and they'll be +exported. The function is never called, because the typechecker spots the +sel_naughty field. Note [GADT record selectors] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |