Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC
Commits:
-
fa31bae9
by Berk Özkütük at 2025-07-01T18:26:56-04:00
-
659cdd02
by Ryan Hendrickson at 2025-07-01T18:27:01-04:00
-
a4333bb1
by Rodrigo Mesquita at 2025-07-01T18:27:02-04:00
-
b1927b0b
by meooow25 at 2025-07-01T18:27:10-04:00
16 changed files:
- compiler/GHC/Core/TyCon.hs
- hadrian/src/Oracles/Flag.hs
- hadrian/src/Rules/Generate.hs
- hadrian/src/Settings/Builders/Cabal.hs
- hadrian/src/Settings/Packages.hs
- hadrian/src/Settings/Program.hs
- libraries/base/changelog.md
- libraries/ghc-internal/src/GHC/Internal/List.hs
- utils/haddock/CHANGES.md
- utils/haddock/haddock-api/src/Haddock/Interface/AttachInstances.hs
- utils/haddock/haddock-api/src/Haddock/Interface/Create.hs
- utils/haddock/haddock-api/src/Haddock/Types.hs
- utils/haddock/haddock-test/src/Test/Haddock/Config.hs
- utils/haddock/html-test/ref/Bug1004.html
- + utils/haddock/html-test/ref/Bug25739.html
- + utils/haddock/html-test/src/Bug25739.hs
Changes:
... | ... | @@ -2709,6 +2709,7 @@ tyConStupidTheta :: TyCon -> [PredType] |
2709 | 2709 | tyConStupidTheta tc@(TyCon { tyConDetails = details })
|
2710 | 2710 | | AlgTyCon {algTcStupidTheta = stupid} <- details = stupid
|
2711 | 2711 | | PrimTyCon {} <- details = []
|
2712 | + | PromotedDataCon {} <- details = []
|
|
2712 | 2713 | | otherwise = pprPanic "tyConStupidTheta" (ppr tc)
|
2713 | 2714 | |
2714 | 2715 | -- | Extract the 'TyVar's bound by a vanilla type synonym
|
... | ... | @@ -7,7 +7,6 @@ module Oracles.Flag ( |
7 | 7 | targetRTSLinkerOnlySupportsSharedLibs,
|
8 | 8 | targetSupportsThreadedRts,
|
9 | 9 | targetSupportsSMP,
|
10 | - ghcWithInterpreter,
|
|
11 | 10 | useLibffiForAdjustors,
|
12 | 11 | arSupportsDashL,
|
13 | 12 | arSupportsAtFile
|
... | ... | @@ -146,31 +145,5 @@ targetSupportsSMP = do |
146 | 145 | | goodArch -> return True
|
147 | 146 | | otherwise -> return False
|
148 | 147 | |
149 | - |
|
150 | --- | When cross compiling, enable for stage0 to get ghci
|
|
151 | --- support. But when not cross compiling, disable for
|
|
152 | --- stage0, otherwise we introduce extra dependencies
|
|
153 | --- like haskeline etc, and mixing stageBoot/stage0 libs
|
|
154 | --- can cause extra trouble (e.g. #25406)
|
|
155 | ---
|
|
156 | --- Also checks whether the target supports GHCi.
|
|
157 | -ghcWithInterpreter :: Stage -> Action Bool
|
|
158 | -ghcWithInterpreter stage = do
|
|
159 | - is_cross <- flag CrossCompiling
|
|
160 | - goodOs <- anyTargetOs [ OSMinGW32, OSLinux, OSSolaris2 -- TODO "cygwin32"?,
|
|
161 | - , OSFreeBSD, OSDragonFly, OSNetBSD, OSOpenBSD
|
|
162 | - , OSDarwin, OSKFreeBSD
|
|
163 | - , OSWasi ]
|
|
164 | - goodArch <- (||) <$>
|
|
165 | - anyTargetArch [ ArchX86, ArchX86_64, ArchPPC
|
|
166 | - , ArchAArch64, ArchS390X
|
|
167 | - , ArchPPC_64 ELF_V1, ArchPPC_64 ELF_V2
|
|
168 | - , ArchRISCV64, ArchLoongArch64
|
|
169 | - , ArchWasm32 ]
|
|
170 | - <*> isArmTarget
|
|
171 | - -- Maybe this should just be false for cross compilers. But for now
|
|
172 | - -- I've kept the old behaviour where it will say yes. (See #25939)
|
|
173 | - return $ goodOs && goodArch && (stage >= Stage1 || is_cross)
|
|
174 | - |
|
175 | 148 | useLibffiForAdjustors :: Action Bool
|
176 | 149 | useLibffiForAdjustors = queryTargetTarget tgtUseLibffiForAdjustors |
... | ... | @@ -26,6 +26,7 @@ import Utilities |
26 | 26 | import GHC.Toolchain as Toolchain hiding (HsCpp(HsCpp))
|
27 | 27 | import GHC.Toolchain.Program
|
28 | 28 | import GHC.Platform.ArchOS
|
29 | +import Settings.Program (ghcWithInterpreter)
|
|
29 | 30 | |
30 | 31 | -- | Track this file to rebuild generated files whenever it changes.
|
31 | 32 | trackGenerateHs :: Expr ()
|
... | ... | @@ -11,7 +11,7 @@ import Settings.Builders.Common |
11 | 11 | import qualified Settings.Builders.Common as S
|
12 | 12 | import Control.Exception (assert)
|
13 | 13 | import qualified Data.Set as Set
|
14 | -import Settings.Program (programContext)
|
|
14 | +import Settings.Program (programContext, ghcWithInterpreter)
|
|
15 | 15 | import GHC.Toolchain (ccLinkProgram, tgtCCompilerLink)
|
16 | 16 | import GHC.Toolchain.Program (prgFlags)
|
17 | 17 |
... | ... | @@ -11,6 +11,7 @@ import Settings.Builders.Common (wayCcArgs) |
11 | 11 | import GHC.Toolchain.Target
|
12 | 12 | import GHC.Platform.ArchOS
|
13 | 13 | import Data.Version.Extra
|
14 | +import Settings.Program (ghcWithInterpreter)
|
|
14 | 15 | |
15 | 16 | -- | Package-specific command-line arguments.
|
16 | 17 | packageArgs :: Args
|
1 | 1 | module Settings.Program
|
2 | 2 | ( programContext
|
3 | + , ghcWithInterpreter
|
|
3 | 4 | ) where
|
4 | 5 | |
5 | 6 | import Base
|
6 | 7 | import Context
|
7 | 8 | import Oracles.Flavour
|
9 | +import Oracles.Flag
|
|
8 | 10 | import Packages
|
9 | 11 | |
12 | +import GHC.Platform.ArchOS
|
|
13 | +import Settings.Builders.Common (anyTargetOs, anyTargetArch, isArmTarget)
|
|
14 | + |
|
10 | 15 | -- TODO: there is duplication and inconsistency between this and
|
11 | 16 | -- Rules.Program.getProgramContexts. There should only be one way to
|
12 | 17 | -- get a context/contexts for a given stage and package.
|
... | ... | @@ -24,3 +29,33 @@ programContext stage pkg = do |
24 | 29 | |
25 | 30 | notStage0 (Stage0 {}) = False
|
26 | 31 | notStage0 _ = True
|
32 | + |
|
33 | +-- | When cross compiling, enable for stage0 to get ghci
|
|
34 | +-- support. But when not cross compiling, disable for
|
|
35 | +-- stage0, otherwise we introduce extra dependencies
|
|
36 | +-- like haskeline etc, and mixing stageBoot/stage0 libs
|
|
37 | +-- can cause extra trouble (e.g. #25406)
|
|
38 | +--
|
|
39 | +-- Also checks whether the target supports GHCi.
|
|
40 | +ghcWithInterpreter :: Stage -> Action Bool
|
|
41 | +ghcWithInterpreter stage = do
|
|
42 | + is_cross <- flag CrossCompiling
|
|
43 | + goodOs <- anyTargetOs [ OSMinGW32, OSLinux, OSSolaris2 -- TODO "cygwin32"?,
|
|
44 | + , OSFreeBSD, OSDragonFly, OSNetBSD, OSOpenBSD
|
|
45 | + , OSDarwin, OSKFreeBSD
|
|
46 | + , OSWasi ]
|
|
47 | + goodArch <- (||) <$>
|
|
48 | + anyTargetArch [ ArchX86, ArchX86_64, ArchPPC
|
|
49 | + , ArchAArch64, ArchS390X
|
|
50 | + , ArchPPC_64 ELF_V1, ArchPPC_64 ELF_V2
|
|
51 | + , ArchRISCV64, ArchLoongArch64
|
|
52 | + , ArchWasm32 ]
|
|
53 | + <*> isArmTarget
|
|
54 | + -- The explicit support list is essentially a list of platforms for which
|
|
55 | + -- the RTS linker has support. If the RTS linker is not supported then we
|
|
56 | + -- fall back on dynamic linking:
|
|
57 | + dynamicGhcProgs <- askDynGhcPrograms
|
|
58 | + |
|
59 | + -- Maybe this should just be false for cross compilers. But for now
|
|
60 | + -- I've kept the old behaviour where it will say yes. (See #25939)
|
|
61 | + return $ ((goodOs && goodArch) || dynamicGhcProgs) && (stage >= Stage1 || is_cross) |
... | ... | @@ -26,6 +26,7 @@ |
26 | 26 | * Expose constructor and field of `Backtraces` from `Control.Exception.Backtrace`, as per [CLC #199](https://github.com/haskell/core-libraries-committee/issues/199#issuecomment-1954662391)
|
27 | 27 | |
28 | 28 | * Fix incorrect results of `integerPowMod` when the base is 0 and the exponent is negative, and `integerRecipMod` when the modulus is zero ([#26017](https://gitlab.haskell.org/ghc/ghc/-/issues/26017)).
|
29 | + * Fix the rewrite rule for `scanl'` not being strict in the first element of the output list ([#26143](https://gitlab.haskell.org/ghc/ghc/-/issues/26143)).
|
|
29 | 30 | |
30 | 31 | |
31 | 32 | ## 4.21.0.0 *December 2024*
|
... | ... | @@ -601,7 +601,7 @@ scanl' = scanlGo' |
601 | 601 | -- See Note [scanl rewrite rules]
|
602 | 602 | {-# RULES
|
603 | 603 | "scanl'" [~1] forall f a bs . scanl' f a bs =
|
604 | - build (\c n -> a `c` foldr (scanlFB' f c) (flipSeq n) bs a)
|
|
604 | + build (\c n -> a `seq` (a `c` foldr (scanlFB' f c) (flipSeq n) bs a))
|
|
605 | 605 | "scanlList'" [1] forall f a bs .
|
606 | 606 | foldr (scanlFB' f (:)) (flipSeq []) bs a = tail (scanl' f a bs)
|
607 | 607 | #-}
|
1 | 1 | ## Changes in 2.32.0
|
2 | 2 | * Add highlighting for inline-code-blocks (sections enclosed in @'s)
|
3 | 3 | |
4 | + * Fix missing documentation for orphan instances from other packages.
|
|
5 | + |
|
4 | 6 | * Add incremental mode to support rendering documentation one module at a time.
|
5 | 7 | |
6 | 8 | * The flag `--no-compilation` has been added. This flag causes Haddock to avoid
|
... | ... | @@ -88,7 +88,10 @@ attachInstances expInfo ifaces instIfaceMap isOneShot = do |
88 | 88 | , fromOrig == Just True || not (null reExp)
|
89 | 89 | ]
|
90 | 90 | mods_to_load = moduleSetElts mods
|
91 | - mods_visible = mkModuleSet $ map ifaceMod ifaces
|
|
91 | + -- We need to ensure orphans in modules outside of this package are included.
|
|
92 | + -- See https://gitlab.haskell.org/ghc/ghc/-/issues/25147
|
|
93 | + -- and https://gitlab.haskell.org/ghc/ghc/-/issues/26079
|
|
94 | + mods_visible = mkModuleSet $ concatMap (liftA2 (:) ifaceMod ifaceOrphanDeps) ifaces
|
|
92 | 95 | |
93 | 96 | (_msgs, mb_index) <- do
|
94 | 97 | hsc_env <- getSession
|
... | ... | @@ -59,6 +59,7 @@ import GHC.Types.Name.Set |
59 | 59 | import GHC.Types.SafeHaskell
|
60 | 60 | import qualified GHC.Types.SrcLoc as SrcLoc
|
61 | 61 | import qualified GHC.Types.Unique.Map as UniqMap
|
62 | +import GHC.Unit.Module.Deps (dep_orphs)
|
|
62 | 63 | import GHC.Unit.Module.ModIface
|
63 | 64 | import GHC.Unit.State (PackageName (..), UnitState)
|
64 | 65 | import GHC.Utils.Outputable (SDocContext)
|
... | ... | @@ -270,6 +271,7 @@ createInterface1' flags unit_state dflags hie_file mod_iface ifaces inst_ifaces |
270 | 271 | , ifaceVisibleExports = visible_names
|
271 | 272 | , ifaceFixMap = fixities
|
272 | 273 | , ifaceInstances = instances
|
274 | + , ifaceOrphanDeps = dep_orphs $ mi_deps mod_iface
|
|
273 | 275 | , ifaceOrphanInstances = [] -- Filled in attachInstances
|
274 | 276 | , ifaceRnOrphanInstances = [] -- Filled in renameInterfaceRn
|
275 | 277 | , ifaceHaddockCoverage = coverage
|
... | ... | @@ -134,6 +134,9 @@ data Interface = Interface |
134 | 134 | -- Names from modules that are entirely re-exported don't count as visible.
|
135 | 135 | , ifaceInstances :: [ClsInst]
|
136 | 136 | -- ^ Instances exported by the module.
|
137 | + , ifaceOrphanDeps :: [Module]
|
|
138 | + -- ^ The list of modules to check for orphan instances if this module is
|
|
139 | + -- imported.
|
|
137 | 140 | , ifaceOrphanInstances :: [DocInstance GhcRn]
|
138 | 141 | -- ^ Orphan instances
|
139 | 142 | , ifaceRnOrphanInstances :: [DocInstance DocNameI]
|
... | ... | @@ -262,6 +262,7 @@ baseDependencies ghcPath = do |
262 | 262 | pkgs =
|
263 | 263 | [ "array"
|
264 | 264 | , "base"
|
265 | + , "deepseq"
|
|
265 | 266 | , "ghc-prim"
|
266 | 267 | , "process"
|
267 | 268 | , "template-haskell"
|
... | ... | @@ -833,7 +833,61 @@ |
833 | 833 | ><tr
|
834 | 834 | ><td class="src clearfix"
|
835 | 835 | ><span class="inst-left"
|
836 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Alternative:8"
|
|
836 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:NFData1:8"
|
|
837 | + ></span
|
|
838 | + > <span class="breakable"
|
|
839 | + >(<span class="unbreakable"
|
|
840 | + ><a href="#" title="Control.DeepSeq"
|
|
841 | + >NFData1</a
|
|
842 | + > f</span
|
|
843 | + >, <span class="unbreakable"
|
|
844 | + ><a href="#" title="Control.DeepSeq"
|
|
845 | + >NFData1</a
|
|
846 | + > g</span
|
|
847 | + >)</span
|
|
848 | + > => <a href="#" title="Control.DeepSeq"
|
|
849 | + >NFData1</a
|
|
850 | + > (<a href="#" title="Bug1004"
|
|
851 | + >Product</a
|
|
852 | + > f g)</span
|
|
853 | + > <a href="#" class="selflink"
|
|
854 | + >#</a
|
|
855 | + ></td
|
|
856 | + ><td class="doc"
|
|
857 | + ><p
|
|
858 | + ><em
|
|
859 | + >Since: deepseq-1.4.3.0</em
|
|
860 | + ></p
|
|
861 | + ></td
|
|
862 | + ></tr
|
|
863 | + ><tr
|
|
864 | + ><td colspan="2"
|
|
865 | + ><details id="i:id:Product:NFData1:8"
|
|
866 | + ><summary class="hide-when-js-enabled"
|
|
867 | + >Instance details</summary
|
|
868 | + ><p
|
|
869 | + >Defined in <a href="#"
|
|
870 | + >Control.DeepSeq</a
|
|
871 | + ></p
|
|
872 | + > <div class="subs methods"
|
|
873 | + ><p class="caption"
|
|
874 | + >Methods</p
|
|
875 | + ><p class="src"
|
|
876 | + ><a href="#"
|
|
877 | + >liftRnf</a
|
|
878 | + > :: (a -> ()) -> <a href="#" title="Bug1004"
|
|
879 | + >Product</a
|
|
880 | + > f g a -> () <a href="#" class="selflink"
|
|
881 | + >#</a
|
|
882 | + ></p
|
|
883 | + ></div
|
|
884 | + ></details
|
|
885 | + ></td
|
|
886 | + ></tr
|
|
887 | + ><tr
|
|
888 | + ><td class="src clearfix"
|
|
889 | + ><span class="inst-left"
|
|
890 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Alternative:9"
|
|
837 | 891 | ></span
|
838 | 892 | > <span class="breakable"
|
839 | 893 | >(<span class="unbreakable"
|
... | ... | @@ -862,7 +916,7 @@ |
862 | 916 | ></tr
|
863 | 917 | ><tr
|
864 | 918 | ><td colspan="2"
|
865 | - ><details id="i:id:Product:Alternative:8"
|
|
919 | + ><details id="i:id:Product:Alternative:9"
|
|
866 | 920 | ><summary class="hide-when-js-enabled"
|
867 | 921 | >Instance details</summary
|
868 | 922 | ><p
|
... | ... | @@ -919,7 +973,7 @@ |
919 | 973 | ><tr
|
920 | 974 | ><td class="src clearfix"
|
921 | 975 | ><span class="inst-left"
|
922 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Applicative:9"
|
|
976 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Applicative:10"
|
|
923 | 977 | ></span
|
924 | 978 | > <span class="breakable"
|
925 | 979 | >(<span class="unbreakable"
|
... | ... | @@ -948,7 +1002,7 @@ |
948 | 1002 | ></tr
|
949 | 1003 | ><tr
|
950 | 1004 | ><td colspan="2"
|
951 | - ><details id="i:id:Product:Applicative:9"
|
|
1005 | + ><details id="i:id:Product:Applicative:10"
|
|
952 | 1006 | ><summary class="hide-when-js-enabled"
|
953 | 1007 | >Instance details</summary
|
954 | 1008 | ><p
|
... | ... | @@ -1021,7 +1075,7 @@ |
1021 | 1075 | ><tr
|
1022 | 1076 | ><td class="src clearfix"
|
1023 | 1077 | ><span class="inst-left"
|
1024 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Functor:10"
|
|
1078 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Functor:11"
|
|
1025 | 1079 | ></span
|
1026 | 1080 | > <span class="breakable"
|
1027 | 1081 | >(<span class="unbreakable"
|
... | ... | @@ -1050,7 +1104,7 @@ |
1050 | 1104 | ></tr
|
1051 | 1105 | ><tr
|
1052 | 1106 | ><td colspan="2"
|
1053 | - ><details id="i:id:Product:Functor:10"
|
|
1107 | + ><details id="i:id:Product:Functor:11"
|
|
1054 | 1108 | ><summary class="hide-when-js-enabled"
|
1055 | 1109 | >Instance details</summary
|
1056 | 1110 | ><p
|
... | ... | @@ -1087,7 +1141,7 @@ |
1087 | 1141 | ><tr
|
1088 | 1142 | ><td class="src clearfix"
|
1089 | 1143 | ><span class="inst-left"
|
1090 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Monad:11"
|
|
1144 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Monad:12"
|
|
1091 | 1145 | ></span
|
1092 | 1146 | > <span class="breakable"
|
1093 | 1147 | >(<span class="unbreakable"
|
... | ... | @@ -1116,7 +1170,7 @@ |
1116 | 1170 | ></tr
|
1117 | 1171 | ><tr
|
1118 | 1172 | ><td colspan="2"
|
1119 | - ><details id="i:id:Product:Monad:11"
|
|
1173 | + ><details id="i:id:Product:Monad:12"
|
|
1120 | 1174 | ><summary class="hide-when-js-enabled"
|
1121 | 1175 | >Instance details</summary
|
1122 | 1176 | ><p
|
... | ... | @@ -1165,7 +1219,7 @@ |
1165 | 1219 | ><tr
|
1166 | 1220 | ><td class="src clearfix"
|
1167 | 1221 | ><span class="inst-left"
|
1168 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:MonadPlus:12"
|
|
1222 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:MonadPlus:13"
|
|
1169 | 1223 | ></span
|
1170 | 1224 | > <span class="breakable"
|
1171 | 1225 | >(<span class="unbreakable"
|
... | ... | @@ -1194,7 +1248,7 @@ |
1194 | 1248 | ></tr
|
1195 | 1249 | ><tr
|
1196 | 1250 | ><td colspan="2"
|
1197 | - ><details id="i:id:Product:MonadPlus:12"
|
|
1251 | + ><details id="i:id:Product:MonadPlus:13"
|
|
1198 | 1252 | ><summary class="hide-when-js-enabled"
|
1199 | 1253 | >Instance details</summary
|
1200 | 1254 | ><p
|
... | ... | @@ -1231,7 +1285,7 @@ |
1231 | 1285 | ><tr
|
1232 | 1286 | ><td class="src clearfix"
|
1233 | 1287 | ><span class="inst-left"
|
1234 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:MonadFix:13"
|
|
1288 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:MonadFix:14"
|
|
1235 | 1289 | ></span
|
1236 | 1290 | > <span class="breakable"
|
1237 | 1291 | >(<span class="unbreakable"
|
... | ... | @@ -1260,7 +1314,7 @@ |
1260 | 1314 | ></tr
|
1261 | 1315 | ><tr
|
1262 | 1316 | ><td colspan="2"
|
1263 | - ><details id="i:id:Product:MonadFix:13"
|
|
1317 | + ><details id="i:id:Product:MonadFix:14"
|
|
1264 | 1318 | ><summary class="hide-when-js-enabled"
|
1265 | 1319 | >Instance details</summary
|
1266 | 1320 | ><p
|
... | ... | @@ -1287,7 +1341,7 @@ |
1287 | 1341 | ><tr
|
1288 | 1342 | ><td class="src clearfix"
|
1289 | 1343 | ><span class="inst-left"
|
1290 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:MonadZip:14"
|
|
1344 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:MonadZip:15"
|
|
1291 | 1345 | ></span
|
1292 | 1346 | > <span class="breakable"
|
1293 | 1347 | >(<span class="unbreakable"
|
... | ... | @@ -1316,7 +1370,7 @@ |
1316 | 1370 | ></tr
|
1317 | 1371 | ><tr
|
1318 | 1372 | ><td colspan="2"
|
1319 | - ><details id="i:id:Product:MonadZip:14"
|
|
1373 | + ><details id="i:id:Product:MonadZip:15"
|
|
1320 | 1374 | ><summary class="hide-when-js-enabled"
|
1321 | 1375 | >Instance details</summary
|
1322 | 1376 | ><p
|
... | ... | @@ -1369,7 +1423,7 @@ |
1369 | 1423 | ><tr
|
1370 | 1424 | ><td class="src clearfix"
|
1371 | 1425 | ><span class="inst-left"
|
1372 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Foldable:15"
|
|
1426 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Foldable:16"
|
|
1373 | 1427 | ></span
|
1374 | 1428 | > <span class="breakable"
|
1375 | 1429 | >(<span class="unbreakable"
|
... | ... | @@ -1398,7 +1452,7 @@ |
1398 | 1452 | ></tr
|
1399 | 1453 | ><tr
|
1400 | 1454 | ><td colspan="2"
|
1401 | - ><details id="i:id:Product:Foldable:15"
|
|
1455 | + ><details id="i:id:Product:Foldable:16"
|
|
1402 | 1456 | ><summary class="hide-when-js-enabled"
|
1403 | 1457 | >Instance details</summary
|
1404 | 1458 | ><p
|
... | ... | @@ -1573,7 +1627,7 @@ |
1573 | 1627 | ><tr
|
1574 | 1628 | ><td class="src clearfix"
|
1575 | 1629 | ><span class="inst-left"
|
1576 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Traversable:16"
|
|
1630 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Traversable:17"
|
|
1577 | 1631 | ></span
|
1578 | 1632 | > <span class="breakable"
|
1579 | 1633 | >(<span class="unbreakable"
|
... | ... | @@ -1602,7 +1656,7 @@ |
1602 | 1656 | ></tr
|
1603 | 1657 | ><tr
|
1604 | 1658 | ><td colspan="2"
|
1605 | - ><details id="i:id:Product:Traversable:16"
|
|
1659 | + ><details id="i:id:Product:Traversable:17"
|
|
1606 | 1660 | ><summary class="hide-when-js-enabled"
|
1607 | 1661 | >Instance details</summary
|
1608 | 1662 | ><p
|
... | ... | @@ -1667,7 +1721,65 @@ |
1667 | 1721 | ><tr
|
1668 | 1722 | ><td class="src clearfix"
|
1669 | 1723 | ><span class="inst-left"
|
1670 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Monoid:17"
|
|
1724 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:NFData:18"
|
|
1725 | + ></span
|
|
1726 | + > <span class="breakable"
|
|
1727 | + >(<span class="unbreakable"
|
|
1728 | + ><a href="#" title="Control.DeepSeq"
|
|
1729 | + >NFData</a
|
|
1730 | + > (f a)</span
|
|
1731 | + >, <span class="unbreakable"
|
|
1732 | + ><a href="#" title="Control.DeepSeq"
|
|
1733 | + >NFData</a
|
|
1734 | + > (g a)</span
|
|
1735 | + >)</span
|
|
1736 | + > => <a href="#" title="Control.DeepSeq"
|
|
1737 | + >NFData</a
|
|
1738 | + > (<a href="#" title="Bug1004"
|
|
1739 | + >Product</a
|
|
1740 | + > f g a)</span
|
|
1741 | + > <a href="#" class="selflink"
|
|
1742 | + >#</a
|
|
1743 | + ></td
|
|
1744 | + ><td class="doc"
|
|
1745 | + ><p
|
|
1746 | + >Note: in <code class="inline-code"
|
|
1747 | + >deepseq-1.5.0.0</code
|
|
1748 | + > this instance's superclasses were changed.</p
|
|
1749 | + ><p
|
|
1750 | + ><em
|
|
1751 | + >Since: deepseq-1.4.3.0</em
|
|
1752 | + ></p
|
|
1753 | + ></td
|
|
1754 | + ></tr
|
|
1755 | + ><tr
|
|
1756 | + ><td colspan="2"
|
|
1757 | + ><details id="i:id:Product:NFData:18"
|
|
1758 | + ><summary class="hide-when-js-enabled"
|
|
1759 | + >Instance details</summary
|
|
1760 | + ><p
|
|
1761 | + >Defined in <a href="#"
|
|
1762 | + >Control.DeepSeq</a
|
|
1763 | + ></p
|
|
1764 | + > <div class="subs methods"
|
|
1765 | + ><p class="caption"
|
|
1766 | + >Methods</p
|
|
1767 | + ><p class="src"
|
|
1768 | + ><a href="#"
|
|
1769 | + >rnf</a
|
|
1770 | + > :: <a href="#" title="Bug1004"
|
|
1771 | + >Product</a
|
|
1772 | + > f g a -> () <a href="#" class="selflink"
|
|
1773 | + >#</a
|
|
1774 | + ></p
|
|
1775 | + ></div
|
|
1776 | + ></details
|
|
1777 | + ></td
|
|
1778 | + ></tr
|
|
1779 | + ><tr
|
|
1780 | + ><td class="src clearfix"
|
|
1781 | + ><span class="inst-left"
|
|
1782 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Monoid:19"
|
|
1671 | 1783 | ></span
|
1672 | 1784 | > <span class="breakable"
|
1673 | 1785 | >(<span class="unbreakable"
|
... | ... | @@ -1696,7 +1808,7 @@ |
1696 | 1808 | ></tr
|
1697 | 1809 | ><tr
|
1698 | 1810 | ><td colspan="2"
|
1699 | - ><details id="i:id:Product:Monoid:17"
|
|
1811 | + ><details id="i:id:Product:Monoid:19"
|
|
1700 | 1812 | ><summary class="hide-when-js-enabled"
|
1701 | 1813 | >Instance details</summary
|
1702 | 1814 | ><p
|
... | ... | @@ -1743,7 +1855,7 @@ |
1743 | 1855 | ><tr
|
1744 | 1856 | ><td class="src clearfix"
|
1745 | 1857 | ><span class="inst-left"
|
1746 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Semigroup:18"
|
|
1858 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Semigroup:20"
|
|
1747 | 1859 | ></span
|
1748 | 1860 | > <span class="breakable"
|
1749 | 1861 | >(<span class="unbreakable"
|
... | ... | @@ -1772,7 +1884,7 @@ |
1772 | 1884 | ></tr
|
1773 | 1885 | ><tr
|
1774 | 1886 | ><td colspan="2"
|
1775 | - ><details id="i:id:Product:Semigroup:18"
|
|
1887 | + ><details id="i:id:Product:Semigroup:20"
|
|
1776 | 1888 | ><summary class="hide-when-js-enabled"
|
1777 | 1889 | >Instance details</summary
|
1778 | 1890 | ><p
|
... | ... | @@ -1825,7 +1937,7 @@ |
1825 | 1937 | ><tr
|
1826 | 1938 | ><td class="src clearfix"
|
1827 | 1939 | ><span class="inst-left"
|
1828 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Eq:19"
|
|
1940 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Eq:21"
|
|
1829 | 1941 | ></span
|
1830 | 1942 | > <span class="breakable"
|
1831 | 1943 | >(<span class="unbreakable"
|
... | ... | @@ -1854,7 +1966,7 @@ |
1854 | 1966 | ></tr
|
1855 | 1967 | ><tr
|
1856 | 1968 | ><td colspan="2"
|
1857 | - ><details id="i:id:Product:Eq:19"
|
|
1969 | + ><details id="i:id:Product:Eq:21"
|
|
1858 | 1970 | ><summary class="hide-when-js-enabled"
|
1859 | 1971 | >Instance details</summary
|
1860 | 1972 | ><p
|
... | ... | @@ -1895,7 +2007,7 @@ |
1895 | 2007 | ><tr
|
1896 | 2008 | ><td class="src clearfix"
|
1897 | 2009 | ><span class="inst-left"
|
1898 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Ord:20"
|
|
2010 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Ord:22"
|
|
1899 | 2011 | ></span
|
1900 | 2012 | > <span class="breakable"
|
1901 | 2013 | >(<span class="unbreakable"
|
... | ... | @@ -1924,7 +2036,7 @@ |
1924 | 2036 | ></tr
|
1925 | 2037 | ><tr
|
1926 | 2038 | ><td colspan="2"
|
1927 | - ><details id="i:id:Product:Ord:20"
|
|
2039 | + ><details id="i:id:Product:Ord:22"
|
|
1928 | 2040 | ><summary class="hide-when-js-enabled"
|
1929 | 2041 | >Instance details</summary
|
1930 | 2042 | ><p
|
... | ... | @@ -2025,7 +2137,7 @@ |
2025 | 2137 | ><tr
|
2026 | 2138 | ><td class="src clearfix"
|
2027 | 2139 | ><span class="inst-left"
|
2028 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Data:21"
|
|
2140 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Data:23"
|
|
2029 | 2141 | ></span
|
2030 | 2142 | > <span class="breakable"
|
2031 | 2143 | >(<span class="unbreakable"
|
... | ... | @@ -2070,7 +2182,7 @@ |
2070 | 2182 | ></tr
|
2071 | 2183 | ><tr
|
2072 | 2184 | ><td colspan="2"
|
2073 | - ><details id="i:id:Product:Data:21"
|
|
2185 | + ><details id="i:id:Product:Data:23"
|
|
2074 | 2186 | ><summary class="hide-when-js-enabled"
|
2075 | 2187 | >Instance details</summary
|
2076 | 2188 | ><p
|
... | ... | @@ -2293,7 +2405,7 @@ |
2293 | 2405 | ><tr
|
2294 | 2406 | ><td class="src clearfix"
|
2295 | 2407 | ><span class="inst-left"
|
2296 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Generic:22"
|
|
2408 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Generic:24"
|
|
2297 | 2409 | ></span
|
2298 | 2410 | > <a href="#" title="GHC.Generics"
|
2299 | 2411 | >Generic</a
|
... | ... | @@ -2308,7 +2420,7 @@ |
2308 | 2420 | ></tr
|
2309 | 2421 | ><tr
|
2310 | 2422 | ><td colspan="2"
|
2311 | - ><details id="i:id:Product:Generic:22"
|
|
2423 | + ><details id="i:id:Product:Generic:24"
|
|
2312 | 2424 | ><summary class="hide-when-js-enabled"
|
2313 | 2425 | >Instance details</summary
|
2314 | 2426 | ><p
|
... | ... | @@ -2447,7 +2559,7 @@ |
2447 | 2559 | ><tr
|
2448 | 2560 | ><td class="src clearfix"
|
2449 | 2561 | ><span class="inst-left"
|
2450 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Read:23"
|
|
2562 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Read:25"
|
|
2451 | 2563 | ></span
|
2452 | 2564 | > <span class="breakable"
|
2453 | 2565 | >(<span class="unbreakable"
|
... | ... | @@ -2476,7 +2588,7 @@ |
2476 | 2588 | ></tr
|
2477 | 2589 | ><tr
|
2478 | 2590 | ><td colspan="2"
|
2479 | - ><details id="i:id:Product:Read:23"
|
|
2591 | + ><details id="i:id:Product:Read:25"
|
|
2480 | 2592 | ><summary class="hide-when-js-enabled"
|
2481 | 2593 | >Instance details</summary
|
2482 | 2594 | ><p
|
... | ... | @@ -2535,7 +2647,7 @@ |
2535 | 2647 | ><tr
|
2536 | 2648 | ><td class="src clearfix"
|
2537 | 2649 | ><span class="inst-left"
|
2538 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Show:24"
|
|
2650 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Show:26"
|
|
2539 | 2651 | ></span
|
2540 | 2652 | > <span class="breakable"
|
2541 | 2653 | >(<span class="unbreakable"
|
... | ... | @@ -2564,7 +2676,7 @@ |
2564 | 2676 | ></tr
|
2565 | 2677 | ><tr
|
2566 | 2678 | ><td colspan="2"
|
2567 | - ><details id="i:id:Product:Show:24"
|
|
2679 | + ><details id="i:id:Product:Show:26"
|
|
2568 | 2680 | ><summary class="hide-when-js-enabled"
|
2569 | 2681 | >Instance details</summary
|
2570 | 2682 | ><p
|
... | ... | @@ -2613,7 +2725,7 @@ |
2613 | 2725 | ><tr
|
2614 | 2726 | ><td class="src clearfix"
|
2615 | 2727 | ><span class="inst-left"
|
2616 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Rep1:25"
|
|
2728 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Rep1:27"
|
|
2617 | 2729 | ></span
|
2618 | 2730 | > <span class="keyword"
|
2619 | 2731 | >type</span
|
... | ... | @@ -2636,7 +2748,7 @@ |
2636 | 2748 | ></tr
|
2637 | 2749 | ><tr
|
2638 | 2750 | ><td colspan="2"
|
2639 | - ><details id="i:id:Product:Rep1:25"
|
|
2751 | + ><details id="i:id:Product:Rep1:27"
|
|
2640 | 2752 | ><summary class="hide-when-js-enabled"
|
2641 | 2753 | >Instance details</summary
|
2642 | 2754 | ><p
|
... | ... | @@ -2711,7 +2823,7 @@ |
2711 | 2823 | ><tr
|
2712 | 2824 | ><td class="src clearfix"
|
2713 | 2825 | ><span class="inst-left"
|
2714 | - ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Rep:26"
|
|
2826 | + ><span class="instance details-toggle-control details-toggle" data-details-id="i:id:Product:Rep:28"
|
|
2715 | 2827 | ></span
|
2716 | 2828 | > <span class="keyword"
|
2717 | 2829 | >type</span
|
... | ... | @@ -2732,7 +2844,7 @@ |
2732 | 2844 | ></tr
|
2733 | 2845 | ><tr
|
2734 | 2846 | ><td colspan="2"
|
2735 | - ><details id="i:id:Product:Rep:26"
|
|
2847 | + ><details id="i:id:Product:Rep:28"
|
|
2736 | 2848 | ><summary class="hide-when-js-enabled"
|
2737 | 2849 | >Instance details</summary
|
2738 | 2850 | ><p
|
1 | +<html xmlns="http://www.w3.org/1999/xhtml"
|
|
2 | +><head
|
|
3 | + ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
|
|
4 | + /><meta name="viewport" content="width=device-width, initial-scale=1"
|
|
5 | + /><title
|
|
6 | + >Bug25739</title
|
|
7 | + ><link href="#" rel="stylesheet" type="text/css" title="Linuwial"
|
|
8 | + /><link rel="stylesheet" type="text/css" href="#"
|
|
9 | + /><link rel="stylesheet" type="text/css" href="#"
|
|
10 | + /><script src="haddock-bundle.min.js" async="async" type="text/javascript"
|
|
11 | + ></script
|
|
12 | + ><script type="text/x-mathjax-config"
|
|
13 | + >MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });</script
|
|
14 | + ><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
|
|
15 | + ></script
|
|
16 | + ></head
|
|
17 | + ><body
|
|
18 | + ><div id="package-header"
|
|
19 | + ><span class="caption empty"
|
|
20 | + > </span
|
|
21 | + ><ul class="links" id="page-menu"
|
|
22 | + ><li
|
|
23 | + ><a href="#"
|
|
24 | + >Contents</a
|
|
25 | + ></li
|
|
26 | + ><li
|
|
27 | + ><a href="#"
|
|
28 | + >Index</a
|
|
29 | + ></li
|
|
30 | + ></ul
|
|
31 | + ></div
|
|
32 | + ><div id="content"
|
|
33 | + ><div id="module-header"
|
|
34 | + ><table class="info"
|
|
35 | + ><tr
|
|
36 | + ><th
|
|
37 | + >Safe Haskell</th
|
|
38 | + ><td
|
|
39 | + >None</td
|
|
40 | + ></tr
|
|
41 | + ></table
|
|
42 | + ><p class="caption"
|
|
43 | + >Bug25739</p
|
|
44 | + ></div
|
|
45 | + ><div id="interface"
|
|
46 | + ><h1
|
|
47 | + >Documentation</h1
|
|
48 | + ><div class="top"
|
|
49 | + ><p class="src"
|
|
50 | + ><span class="keyword"
|
|
51 | + >data</span
|
|
52 | + > <a id="t:Bar" class="def"
|
|
53 | + >Bar</a
|
|
54 | + > :: Foo <a href="#" class="selflink"
|
|
55 | + >#</a
|
|
56 | + ></p
|
|
57 | + ></div
|
|
58 | + ></div
|
|
59 | + ></div
|
|
60 | + ></body
|
|
61 | + ></html
|
|
62 | +> |
1 | +{-# LANGUAGE TypeData #-}
|
|
2 | + |
|
3 | +module Bug25739 (Bar) where
|
|
4 | + |
|
5 | +type data Foo = Bar |