Marge Bot pushed to branch wip/marge_bot_batch_merge_job at Glasgow Haskell Compiler / GHC

Commits:

16 changed files:

Changes:

  • compiler/GHC/Core/TyCon.hs
    ... ... @@ -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
    

  • hadrian/src/Oracles/Flag.hs
    ... ... @@ -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

  • hadrian/src/Rules/Generate.hs
    ... ... @@ -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 ()
    

  • hadrian/src/Settings/Builders/Cabal.hs
    ... ... @@ -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
     
    

  • hadrian/src/Settings/Packages.hs
    ... ... @@ -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
    

  • hadrian/src/Settings/Program.hs
    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)

  • libraries/base/changelog.md
    ... ... @@ -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*
    

  • libraries/ghc-internal/src/GHC/Internal/List.hs
    ... ... @@ -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
      #-}
    

  • utils/haddock/CHANGES.md
    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
    

  • utils/haddock/haddock-api/src/Haddock/Interface/AttachInstances.hs
    ... ... @@ -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
    

  • utils/haddock/haddock-api/src/Haddock/Interface/Create.hs
    ... ... @@ -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
    

  • utils/haddock/haddock-api/src/Haddock/Types.hs
    ... ... @@ -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]
    

  • utils/haddock/haddock-test/src/Test/Haddock/Config.hs
    ... ... @@ -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"
    

  • utils/haddock/html-test/ref/Bug1004.html
    ... ... @@ -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
    +		      > =&gt; <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 -&gt; ()) -&gt; <a href="#" title="Bug1004"
    
    879
    +			  >Product</a
    
    880
    +			  > f g a -&gt; () <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
    +		      > =&gt; <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 -&gt; () <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
    

  • utils/haddock/html-test/ref/Bug25739.html
    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
    +      >&nbsp;</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
    +>

  • utils/haddock/html-test/src/Bug25739.hs
    1
    +{-# LANGUAGE TypeData #-}
    
    2
    +
    
    3
    +module Bug25739 (Bar) where
    
    4
    +
    
    5
    +type data Foo = Bar