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 |