2.1. Version 8.12.1¶
The significant changes to the various parts of the compiler are listed in the following sections.
2.1.2. Full details¶
- In obscure scenarios, GHC now rejects programs it previously accepted, but
with unhelpful types. For example, if (with
-XPartialTypeSignatures) you were to write
x :: forall (f :: forall a (b :: a -> Type). b _). f _, GHC previously would have accepted
x, but its type would have involved the mysterious
Anyinternal type family. Now, GHC rejects, explaining the situation.
18.104.22.168. Runtime system¶
22.214.171.124. Template Haskell¶
- Implement the Overloaded Quotations proposal (#246). The type of all quotation forms have now been generalised in terms of a minimal interface necessary for the implementation rather than the overapproximation of the
- Template Haskell quotes now handle fixity declarations in
wherebindings properly. Previously, such fixity declarations would be dropped when quoted due to a Template Haskell bug.
-XTemplateHaskellQuotesextension now allows nested splices as nested splices do not lead directly to compile-time evaluation. (!2288)
The type of the
getAnnotationsfunction has changed to better reflect the fact that it returns two different kinds of annotations, those on names and those on modules:getAnnotations :: Typeable a => ([Word8] -> a) -> ModGuts -> CoreM (ModuleEnv [a], NameEnv [a])
The meaning of the
HsGrouphas changed slightly. It now only contains fixity signatures defined for top-level declarations and class methods defined outside of the class itself. Previously,
hs_fixdswould also contain fixity signatures for class methods defined inside the class, such as the fixity signature for
min the following example:class C a where infixl 4 `m` m :: a -> a -> a
If you wish to attain the previous behavior of
hs_fixds, use the new
hsGroupTopLevelFixitySigsfunction, which collects all top-level fixity signatures, including those for class methods defined inside classes.
126.96.36.199. Build system¶
2.1.3. Included libraries¶
The package database provided with this distribution also contains a number of packages other than GHC itself. See the changelogs provided with these packages for further change information.
|Package||Version||Reason for inclusion|
|ghc||188.8.131.5200211||The compiler itself|
|ghc-boot-th||184.108.40.20600211||Internal compiler library|
|ghc-boot||220.127.116.1100211||Internal compiler library|
|ghc-heap||18.104.22.16800211||GHC heap-walking library|
|ghci||22.214.171.12400211||The REPL interface|
|libiserv||126.96.36.19900211||Internal compiler library|