Bodigrim pushed to branch wip/zip-them-all at Glasgow Haskell Compiler / GHC
Commits:
-
bab37cc6
by konsumlamm at 2026-06-13T19:10:21+02:00
-
fb5246ad
by fendor at 2026-06-15T18:07:23-04:00
-
291ce3aa
by ARATA Mizuki at 2026-06-15T18:08:26-04:00
-
011be91f
by ARATA Mizuki at 2026-06-15T18:08:26-04:00
-
e8a54713
by ARATA Mizuki at 2026-06-15T18:08:26-04:00
-
9438bec7
by Zubin Duggal at 2026-06-15T18:09:11-04:00
-
893e6133
by Andrew Lelechenko at 2026-06-15T23:55:36+01:00
28 changed files:
- + changelog.d/T27308
- compiler/GHC/CmmToAsm/RV64/CodeGen.hs
- compiler/GHC/CmmToAsm/RV64/Instr.hs
- compiler/GHC/CmmToAsm/RV64/Ppr.hs
- compiler/GHC/CmmToAsm/RV64/Regs.hs
- compiler/GHC/Data/List/NonEmpty.hs
- compiler/GHC/Driver/Backpack.hs
- compiler/GHC/Iface/Load.hs
- compiler/GHC/Iface/Recomp.hs
- compiler/GHC/Unit.hs
- compiler/GHC/Unit/State.hs
- compiler/GHC/Unit/Types.hs
- docs/users_guide/bugs.rst
- libraries/base/base.cabal.in
- libraries/base/changelog.md
- + libraries/base/src/Data/Double.hs
- + libraries/base/src/Data/Float.hs
- libraries/base/src/Data/List/NonEmpty.hs
- libraries/ghc-internal/src/GHC/Internal/Float.hs
- rts/sm/Evac.h
- testsuite/tests/codeGen/should_run/T16617.hs
- testsuite/tests/codeGen/should_run/T16617.stdout
- testsuite/tests/interface-stability/base-exports.stdout
- testsuite/tests/interface-stability/base-exports.stdout-javascript-unknown-ghcjs
- testsuite/tests/interface-stability/base-exports.stdout-mingw32
- utils/haddock/html-test/ref/Hash.html
- utils/haddock/html-test/ref/Test.html
- utils/haddock/html-test/ref/TypeFamilies3.html
Changes:
| 1 | +section: compiler
|
|
| 2 | +synopsis: Drop `preloadClosure` from `UnitState`
|
|
| 3 | +issues: #27308
|
|
| 4 | +mrs: !16108
|
|
| 5 | + |
|
| 6 | +description: {
|
|
| 7 | + Drop `preloadClosure` from `UnitState` as it is always set to the empty set.
|
|
| 8 | + This allows to simplify the `UnitState` and related functions.
|
|
| 9 | +}
|
|
| 10 | + |
| ... | ... | @@ -718,7 +718,7 @@ getRegister' config plat expr = |
| 718 | 718 | ( \dst ->
|
| 719 | 719 | code
|
| 720 | 720 | `appOL` code_x
|
| 721 | - `snocOL` annExpr expr (FCVT IntToFloat (OpReg to dst) (OpReg from reg_x)) -- (Signed ConVerT Float)
|
|
| 721 | + `snocOL` annExpr expr (FCVT IntToFloat (OpReg to dst) (OpReg from reg_x) Rne) -- (Signed ConVerT Float)
|
|
| 722 | 722 | )
|
| 723 | 723 | MO_SF_Round from to ->
|
| 724 | 724 | pure
|
| ... | ... | @@ -726,7 +726,7 @@ getRegister' config plat expr = |
| 726 | 726 | (floatFormat to)
|
| 727 | 727 | ( \dst ->
|
| 728 | 728 | code
|
| 729 | - `snocOL` annExpr expr (FCVT IntToFloat (OpReg to dst) (OpReg from reg)) -- (Signed ConVerT Float)
|
|
| 729 | + `snocOL` annExpr expr (FCVT IntToFloat (OpReg to dst) (OpReg from reg) Rne) -- (Signed ConVerT Float)
|
|
| 730 | 730 | )
|
| 731 | 731 | -- TODO: Can this case happen?
|
| 732 | 732 | MO_FS_Truncate from to
|
| ... | ... | @@ -738,7 +738,7 @@ getRegister' config plat expr = |
| 738 | 738 | code
|
| 739 | 739 | `snocOL`
|
| 740 | 740 | -- W32 is the smallest width to convert to. Decrease width afterwards.
|
| 741 | - annExpr expr (FCVT FloatToInt (OpReg W32 dst) (OpReg from reg))
|
|
| 741 | + annExpr expr (FCVT FloatToInt (OpReg W32 dst) (OpReg from reg) Rtz)
|
|
| 742 | 742 | `appOL` signExtendAdjustPrecission W32 to dst dst -- (float convert (-> zero) signed)
|
| 743 | 743 | )
|
| 744 | 744 | MO_FS_Truncate from to ->
|
| ... | ... | @@ -747,7 +747,7 @@ getRegister' config plat expr = |
| 747 | 747 | (intFormat to)
|
| 748 | 748 | ( \dst ->
|
| 749 | 749 | code
|
| 750 | - `snocOL` annExpr expr (FCVT FloatToInt (OpReg to dst) (OpReg from reg))
|
|
| 750 | + `snocOL` annExpr expr (FCVT FloatToInt (OpReg to dst) (OpReg from reg) Rtz)
|
|
| 751 | 751 | `appOL` truncateReg from to dst -- (float convert (-> zero) signed)
|
| 752 | 752 | )
|
| 753 | 753 | MO_UU_Conv from to
|
| ... | ... | @@ -769,9 +769,18 @@ getRegister' config plat expr = |
| 769 | 769 | `appOL` truncateReg from to dst
|
| 770 | 770 | )
|
| 771 | 771 | MO_SS_Conv from to -> ss_conv from to reg code
|
| 772 | - MO_FF_Conv from to -> return $ Any (floatFormat to) (\dst -> code `snocOL` annExpr e (FCVT FloatToFloat (OpReg to dst) (OpReg from reg)))
|
|
| 772 | + MO_FF_Conv from to -> return $ Any (floatFormat to) (\dst -> code `snocOL` annExpr e (FCVT FloatToFloat (OpReg to dst) (OpReg from reg) Rne))
|
|
| 773 | 773 | MO_WF_Bitcast w -> return $ Any (floatFormat w) (\dst -> code `snocOL` MOV (OpReg w dst) (OpReg w reg))
|
| 774 | - MO_FW_Bitcast w -> return $ Any (intFormat w) (\dst -> code `snocOL` MOV (OpReg w dst) (OpReg w reg))
|
|
| 774 | + MO_FW_Bitcast w ->
|
|
| 775 | + return
|
|
| 776 | + $ Any
|
|
| 777 | + (intFormat w)
|
|
| 778 | + ( \dst ->
|
|
| 779 | + code
|
|
| 780 | + `snocOL` MOV (OpReg w dst) (OpReg w reg)
|
|
| 781 | + -- FMV.X.W sign-extends the value, so truncate the result
|
|
| 782 | + `appOL` truncateReg W64 w dst
|
|
| 783 | + )
|
|
| 775 | 784 | |
| 776 | 785 | -- Conversions
|
| 777 | 786 | -- TODO: Duplication with MO_UU_Conv
|
| ... | ... | @@ -106,7 +106,7 @@ regUsageOfInstr platform instr = case instr of |
| 106 | 106 | LDR _ dst src -> usage (regOp src, regOp dst)
|
| 107 | 107 | LDRU _ dst src -> usage (regOp src, regOp dst)
|
| 108 | 108 | FENCE _ _ -> usage ([], [])
|
| 109 | - FCVT _variant dst src -> usage (regOp src, regOp dst)
|
|
| 109 | + FCVT _variant dst src _rm -> usage (regOp src, regOp dst)
|
|
| 110 | 110 | FABS dst src -> usage (regOp src, regOp dst)
|
| 111 | 111 | FMIN dst src1 src2 -> usage (regOp src1 ++ regOp src2, regOp dst)
|
| 112 | 112 | FMAX dst src1 src2 -> usage (regOp src1 ++ regOp src2, regOp dst)
|
| ... | ... | @@ -165,6 +165,7 @@ callerSavedRegisters = |
| 165 | 165 | ++ map regSingle [t3RegNo .. t6RegNo]
|
| 166 | 166 | ++ map regSingle [ft0RegNo .. ft7RegNo]
|
| 167 | 167 | ++ map regSingle [fa0RegNo .. fa7RegNo]
|
| 168 | + ++ map regSingle [ft8RegNo .. ft11RegNo]
|
|
| 168 | 169 | |
| 169 | 170 | -- | Apply a given mapping to all the register references in this instruction.
|
| 170 | 171 | patchRegsOfInstr :: Instr -> (Reg -> Reg) -> Instr
|
| ... | ... | @@ -205,7 +206,7 @@ patchRegsOfInstr instr env = case instr of |
| 205 | 206 | LDR f o1 o2 -> LDR f (patchOp o1) (patchOp o2)
|
| 206 | 207 | LDRU f o1 o2 -> LDRU f (patchOp o1) (patchOp o2)
|
| 207 | 208 | FENCE o1 o2 -> FENCE o1 o2
|
| 208 | - FCVT variant o1 o2 -> FCVT variant (patchOp o1) (patchOp o2)
|
|
| 209 | + FCVT variant o1 o2 rm -> FCVT variant (patchOp o1) (patchOp o2) rm
|
|
| 209 | 210 | FABS o1 o2 -> FABS (patchOp o1) (patchOp o2)
|
| 210 | 211 | FMIN o1 o2 o3 -> FMIN (patchOp o1) (patchOp o2) (patchOp o3)
|
| 211 | 212 | FMAX o1 o2 o3 -> FMAX (patchOp o1) (patchOp o2) (patchOp o3)
|
| ... | ... | @@ -612,7 +613,7 @@ data Instr |
| 612 | 613 | -- Memory barrier.
|
| 613 | 614 | FENCE FenceType FenceType
|
| 614 | 615 | | -- | Floating point conversion
|
| 615 | - FCVT FcvtVariant Operand Operand
|
|
| 616 | + FCVT FcvtVariant Operand Operand RoundingMode
|
|
| 616 | 617 | | -- | Floating point ABSolute value
|
| 617 | 618 | FABS Operand Operand
|
| 618 | 619 | |
| ... | ... | @@ -636,6 +637,21 @@ data FenceType = FenceRead | FenceWrite | FenceReadWrite |
| 636 | 637 | -- | Variant of a floating point conversion instruction
|
| 637 | 638 | data FcvtVariant = FloatToFloat | IntToFloat | FloatToInt
|
| 638 | 639 | |
| 640 | +-- | The rounding mode associated with an instruction
|
|
| 641 | +data RoundingMode
|
|
| 642 | + = -- | Round to nearest, ties to even
|
|
| 643 | + Rne
|
|
| 644 | + | -- | Round toward zero
|
|
| 645 | + Rtz
|
|
| 646 | + | -- | Round downward (toward negative infinity)
|
|
| 647 | + Rdn
|
|
| 648 | + | -- | Round upward (toward positive infinity)
|
|
| 649 | + Rup
|
|
| 650 | + | -- | Round to nearest, ties to max magnitude
|
|
| 651 | + Rmm
|
|
| 652 | + | -- | Dynamic rounding mode
|
|
| 653 | + Dyn
|
|
| 654 | + |
|
| 639 | 655 | instrCon :: Instr -> String
|
| 640 | 656 | instrCon i =
|
| 641 | 657 | case i of
|
| ... | ... | @@ -406,6 +406,17 @@ pprReg w r = case r of |
| 406 | 406 | -- no support for widths > W64.
|
| 407 | 407 | | otherwise = pprPanic "Unsupported width in register (max is 64)" (ppr w <+> int i)
|
| 408 | 408 | |
| 409 | +-- | Pretty print a rounding mode
|
|
| 410 | +--
|
|
| 411 | +-- If the rounding mode is omitted, 'dyn' will be used.
|
|
| 412 | +pprRm :: IsLine doc => RoundingMode -> doc
|
|
| 413 | +pprRm Rne = text "rne"
|
|
| 414 | +pprRm Rtz = text "rtz"
|
|
| 415 | +pprRm Rdn = text "rdn"
|
|
| 416 | +pprRm Rup = text "rup"
|
|
| 417 | +pprRm Rmm = text "rmm"
|
|
| 418 | +pprRm Dyn = text "dyn"
|
|
| 419 | + |
|
| 409 | 420 | -- | Single precission `Operand` (floating-point)
|
| 410 | 421 | isSingleOp :: Operand -> Bool
|
| 411 | 422 | isSingleOp (OpReg W32 _) = True
|
| ... | ... | @@ -643,25 +654,26 @@ pprInstr platform instr = case instr of |
| 643 | 654 | LDRU FF64 o1 o2@(OpAddr (AddrRegImm _ _)) -> op2 (text "\tfld") o1 o2
|
| 644 | 655 | LDRU f o1 o2 -> pprPanic "Unsupported unsigned load" ((text . show) f <+> pprOp platform o1 <+> pprOp platform o2)
|
| 645 | 656 | FENCE r w -> line $ text "\tfence" <+> pprFenceType r <> char ',' <+> pprFenceType w
|
| 646 | - FCVT FloatToFloat o1@(OpReg W32 _) o2@(OpReg W64 _) -> op2 (text "\tfcvt.s.d") o1 o2
|
|
| 647 | - FCVT FloatToFloat o1@(OpReg W64 _) o2@(OpReg W32 _) -> op2 (text "\tfcvt.d.s") o1 o2
|
|
| 648 | - FCVT FloatToFloat o1 o2 ->
|
|
| 657 | + FCVT FloatToFloat o1@(OpReg W32 _) o2@(OpReg W64 _) rm -> op2rm (text "\tfcvt.s.d") o1 o2 rm
|
|
| 658 | + -- The assembler seems to be unhappy with explicit rounding mode on fcvt.d.s
|
|
| 659 | + FCVT FloatToFloat o1@(OpReg W64 _) o2@(OpReg W32 _) _rm -> op2 (text "\tfcvt.d.s") o1 o2
|
|
| 660 | + FCVT FloatToFloat o1 o2 rm ->
|
|
| 649 | 661 | pprPanic "RV64.pprInstr - impossible float to float conversion"
|
| 650 | - $ line (pprOp platform o1 <> text "->" <> pprOp platform o2)
|
|
| 651 | - FCVT IntToFloat o1@(OpReg W32 _) o2@(OpReg W32 _) -> op2 (text "\tfcvt.s.w") o1 o2
|
|
| 652 | - FCVT IntToFloat o1@(OpReg W32 _) o2@(OpReg W64 _) -> op2 (text "\tfcvt.s.l") o1 o2
|
|
| 653 | - FCVT IntToFloat o1@(OpReg W64 _) o2@(OpReg W32 _) -> op2 (text "\tfcvt.d.w") o1 o2
|
|
| 654 | - FCVT IntToFloat o1@(OpReg W64 _) o2@(OpReg W64 _) -> op2 (text "\tfcvt.d.l") o1 o2
|
|
| 655 | - FCVT IntToFloat o1 o2 ->
|
|
| 662 | + $ line (pprOp platform o1 <> text "->" <> pprOp platform o2 <> text "," <> pprRm rm)
|
|
| 663 | + FCVT IntToFloat o1@(OpReg W32 _) o2@(OpReg W32 _) rm -> op2rm (text "\tfcvt.s.w") o1 o2 rm
|
|
| 664 | + FCVT IntToFloat o1@(OpReg W32 _) o2@(OpReg W64 _) rm -> op2rm (text "\tfcvt.s.l") o1 o2 rm
|
|
| 665 | + FCVT IntToFloat o1@(OpReg W64 _) o2@(OpReg W32 _) rm -> op2rm (text "\tfcvt.d.w") o1 o2 rm
|
|
| 666 | + FCVT IntToFloat o1@(OpReg W64 _) o2@(OpReg W64 _) rm -> op2rm (text "\tfcvt.d.l") o1 o2 rm
|
|
| 667 | + FCVT IntToFloat o1 o2 rm ->
|
|
| 656 | 668 | pprPanic "RV64.pprInstr - impossible integer to float conversion"
|
| 657 | - $ line (pprOp platform o1 <> text "->" <> pprOp platform o2)
|
|
| 658 | - FCVT FloatToInt o1@(OpReg W32 _) o2@(OpReg W32 _) -> op2 (text "\tfcvt.w.s") o1 o2
|
|
| 659 | - FCVT FloatToInt o1@(OpReg W32 _) o2@(OpReg W64 _) -> op2 (text "\tfcvt.w.d") o1 o2
|
|
| 660 | - FCVT FloatToInt o1@(OpReg W64 _) o2@(OpReg W32 _) -> op2 (text "\tfcvt.l.s") o1 o2
|
|
| 661 | - FCVT FloatToInt o1@(OpReg W64 _) o2@(OpReg W64 _) -> op2 (text "\tfcvt.l.d") o1 o2
|
|
| 662 | - FCVT FloatToInt o1 o2 ->
|
|
| 669 | + $ line (pprOp platform o1 <> text "->" <> pprOp platform o2 <> text "," <> pprRm rm)
|
|
| 670 | + FCVT FloatToInt o1@(OpReg W32 _) o2@(OpReg W32 _) rm -> op2rm (text "\tfcvt.w.s") o1 o2 rm
|
|
| 671 | + FCVT FloatToInt o1@(OpReg W32 _) o2@(OpReg W64 _) rm -> op2rm (text "\tfcvt.w.d") o1 o2 rm
|
|
| 672 | + FCVT FloatToInt o1@(OpReg W64 _) o2@(OpReg W32 _) rm -> op2rm (text "\tfcvt.l.s") o1 o2 rm
|
|
| 673 | + FCVT FloatToInt o1@(OpReg W64 _) o2@(OpReg W64 _) rm -> op2rm (text "\tfcvt.l.d") o1 o2 rm
|
|
| 674 | + FCVT FloatToInt o1 o2 rm ->
|
|
| 663 | 675 | pprPanic "RV64.pprInstr - impossible float to integer conversion"
|
| 664 | - $ line (pprOp platform o1 <> text "->" <> pprOp platform o2)
|
|
| 676 | + $ line (pprOp platform o1 <> text "->" <> pprOp platform o2 <> text "," <> pprRm rm)
|
|
| 665 | 677 | FABS o1 o2 | isSingleOp o2 -> op2 (text "\tfabs.s") o1 o2
|
| 666 | 678 | FABS o1 o2 | isDoubleOp o2 -> op2 (text "\tfabs.d") o1 o2
|
| 667 | 679 | FMIN o1 o2 o3 | isSingleOp o1 -> op3 (text "\tfmin.s") o1 o2 o3
|
| ... | ... | @@ -678,6 +690,8 @@ pprInstr platform instr = case instr of |
| 678 | 690 | instr -> panic $ "RV64.pprInstr - Unknown instruction: " ++ instrCon instr
|
| 679 | 691 | where
|
| 680 | 692 | op2 op o1 o2 = line $ op <+> pprOp platform o1 <> comma <+> pprOp platform o2
|
| 693 | + op2rm op o1 o2 Dyn = line $ op <+> pprOp platform o1 <> comma <+> pprOp platform o2
|
|
| 694 | + op2rm op o1 o2 rm = line $ op <+> pprOp platform o1 <> comma <+> pprOp platform o2 <> comma <+> pprRm rm
|
|
| 681 | 695 | op3 op o1 o2 o3 = line $ op <+> pprOp platform o1 <> comma <+> pprOp platform o2 <> comma <+> pprOp platform o3
|
| 682 | 696 | op4 op o1 o2 o3 o4 = line $ op <+> pprOp platform o1 <> comma <+> pprOp platform o2 <> comma <+> pprOp platform o3 <> comma <+> pprOp platform o4
|
| 683 | 697 | pprFenceType FenceRead = text "r"
|
| ... | ... | @@ -53,9 +53,14 @@ d7RegNo, ft7RegNo :: RegNo |
| 53 | 53 | d7RegNo = 39
|
| 54 | 54 | ft7RegNo = d7RegNo
|
| 55 | 55 | |
| 56 | +d28RegNo, ft8RegNo :: RegNo
|
|
| 57 | +d28RegNo = 60
|
|
| 58 | +ft8RegNo = d28RegNo
|
|
| 59 | + |
|
| 56 | 60 | -- | Last floating point register.
|
| 57 | -d31RegNo :: RegNo
|
|
| 61 | +d31RegNo, ft11RegNo :: RegNo
|
|
| 58 | 62 | d31RegNo = 63
|
| 63 | +ft11RegNo = d31RegNo
|
|
| 59 | 64 | |
| 60 | 65 | a0RegNo, x10RegNo :: RegNo
|
| 61 | 66 | x10RegNo = 10
|
| 1 | +{-# OPTIONS_GHC -Wno-dodgy-imports #-}
|
|
| 1 | 2 | module GHC.Data.List.NonEmpty (module Data.List.NonEmpty, module GHC.Data.List.NonEmpty, toList) where
|
| 2 | 3 | |
| 3 | 4 | import Prelude (Bool, (.))
|
| 4 | 5 | import Control.Applicative
|
| 5 | 6 | import qualified Control.Monad as List (zipWithM)
|
| 6 | 7 | import Data.Foldable (Foldable (toList))
|
| 7 | -import Data.List.NonEmpty hiding (toList, unzip)
|
|
| 8 | +import Data.List.NonEmpty hiding (toList, unzip, unzip3)
|
|
| 8 | 9 | import qualified Data.List as List
|
| 9 | 10 | import qualified GHC.Data.List as List
|
| 10 | 11 |
| ... | ... | @@ -242,7 +242,6 @@ withBkpSession cid insts deps session_type do_this = do |
| 242 | 242 | -- Synthesize the flags
|
| 243 | 243 | , packageFlags = packageFlags dflags ++ map (\(uid0, rn) ->
|
| 244 | 244 | let uid = unwireUnit unit_state
|
| 245 | - $ improveUnit unit_state
|
|
| 246 | 245 | $ renameHoleUnit unit_state (listToUFM insts) uid0
|
| 247 | 246 | in ExposePackage
|
| 248 | 247 | (showSDoc dflags
|
| ... | ... | @@ -311,19 +310,16 @@ buildUnit session cid insts lunit = do |
| 311 | 310 | -- The compilation dependencies are just the appropriately filled
|
| 312 | 311 | -- in unit IDs which must be compiled before we can compile.
|
| 313 | 312 | let hsubst = listToUFM insts
|
| 314 | - deps0 = map (renameHoleUnit (hsc_units hsc_env) hsubst) raw_deps
|
|
| 313 | + deps = map (renameHoleUnit (hsc_units hsc_env) hsubst) raw_deps
|
|
| 315 | 314 | |
| 316 | 315 | -- Build dependencies OR make sure they make sense. BUT NOTE,
|
| 317 | 316 | -- we can only check the ones that are fully filled; the rest
|
| 318 | 317 | -- we have to defer until we've typechecked our local signature.
|
| 319 | 318 | -- TODO: work this into GHC.Driver.Make!!
|
| 320 | - forM_ (zip [1..] deps0) $ \(i, dep) ->
|
|
| 319 | + forM_ (zip [1..] deps) $ \(i, dep) ->
|
|
| 321 | 320 | case session of
|
| 322 | 321 | TcSession -> return ()
|
| 323 | - _ -> compileInclude (length deps0) (i, dep)
|
|
| 324 | - |
|
| 325 | - -- IMPROVE IT
|
|
| 326 | - let deps = map (improveUnit (hsc_units hsc_env)) deps0
|
|
| 322 | + _ -> compileInclude (length deps) (i, dep)
|
|
| 327 | 323 | |
| 328 | 324 | mb_old_eps <- case session of
|
| 329 | 325 | TcSession -> fmap Just getEpsGhc
|
| ... | ... | @@ -914,13 +914,13 @@ findAndReadIface hsc_env doc_str mod wanted_mod hi_boot_file = do |
| 914 | 914 | && not (isOneShot (ghcMode dflags))
|
| 915 | 915 | then return (Failed (HomeModError mod loc))
|
| 916 | 916 | else do
|
| 917 | - r <- read_file hooks logger name_cache unit_state dflags wanted_mod (ml_hi_file loc)
|
|
| 917 | + r <- read_file hooks logger name_cache dflags wanted_mod (ml_hi_file loc)
|
|
| 918 | 918 | case r of
|
| 919 | 919 | Failed err
|
| 920 | 920 | -> return (Failed $ BadIfaceFile err)
|
| 921 | 921 | Succeeded (iface,_fp)
|
| 922 | 922 | -> do
|
| 923 | - r2 <- load_dynamic_too_maybe hooks logger name_cache unit_state
|
|
| 923 | + r2 <- load_dynamic_too_maybe hooks logger name_cache
|
|
| 924 | 924 | (setDynamicNow dflags) wanted_mod
|
| 925 | 925 | iface loc
|
| 926 | 926 | case r2 of
|
| ... | ... | @@ -936,20 +936,20 @@ findAndReadIface hsc_env doc_str mod wanted_mod hi_boot_file = do |
| 936 | 936 | err
|
| 937 | 937 | |
| 938 | 938 | -- | Check if we need to try the dynamic interface for -dynamic-too
|
| 939 | -load_dynamic_too_maybe :: Hooks -> Logger -> NameCache -> UnitState -> DynFlags
|
|
| 939 | +load_dynamic_too_maybe :: Hooks -> Logger -> NameCache -> DynFlags
|
|
| 940 | 940 | -> Module -> ModIface -> ModLocation
|
| 941 | 941 | -> IO (MaybeErr MissingInterfaceError ())
|
| 942 | -load_dynamic_too_maybe hooks logger name_cache unit_state dflags wanted_mod iface loc
|
|
| 942 | +load_dynamic_too_maybe hooks logger name_cache dflags wanted_mod iface loc
|
|
| 943 | 943 | -- Indefinite interfaces are ALWAYS non-dynamic.
|
| 944 | 944 | | not (moduleIsDefinite (mi_module iface)) = return (Succeeded ())
|
| 945 | - | gopt Opt_BuildDynamicToo dflags = load_dynamic_too hooks logger name_cache unit_state dflags wanted_mod iface loc
|
|
| 945 | + | gopt Opt_BuildDynamicToo dflags = load_dynamic_too hooks logger name_cache dflags wanted_mod iface loc
|
|
| 946 | 946 | | otherwise = return (Succeeded ())
|
| 947 | 947 | |
| 948 | -load_dynamic_too :: Hooks -> Logger -> NameCache -> UnitState -> DynFlags
|
|
| 948 | +load_dynamic_too :: Hooks -> Logger -> NameCache -> DynFlags
|
|
| 949 | 949 | -> Module -> ModIface -> ModLocation
|
| 950 | 950 | -> IO (MaybeErr MissingInterfaceError ())
|
| 951 | -load_dynamic_too hooks logger name_cache unit_state dflags wanted_mod iface loc = do
|
|
| 952 | - read_file hooks logger name_cache unit_state dflags wanted_mod (ml_dyn_hi_file loc) >>= \case
|
|
| 951 | +load_dynamic_too hooks logger name_cache dflags wanted_mod iface loc = do
|
|
| 952 | + read_file hooks logger name_cache dflags wanted_mod (ml_dyn_hi_file loc) >>= \case
|
|
| 953 | 953 | Succeeded (dynIface, _)
|
| 954 | 954 | | mi_mod_hash iface == mi_mod_hash dynIface
|
| 955 | 955 | -> return (Succeeded ())
|
| ... | ... | @@ -963,10 +963,10 @@ load_dynamic_too hooks logger name_cache unit_state dflags wanted_mod iface loc |
| 963 | 963 | |
| 964 | 964 | |
| 965 | 965 | |
| 966 | -read_file :: Hooks -> Logger -> NameCache -> UnitState -> DynFlags
|
|
| 966 | +read_file :: Hooks -> Logger -> NameCache -> DynFlags
|
|
| 967 | 967 | -> Module -> FilePath
|
| 968 | 968 | -> IO (MaybeErr ReadInterfaceError (ModIface, FilePath))
|
| 969 | -read_file hooks logger name_cache unit_state dflags wanted_mod file_path = do
|
|
| 969 | +read_file hooks logger name_cache dflags wanted_mod file_path = do
|
|
| 970 | 970 | |
| 971 | 971 | -- Figure out what is recorded in mi_module. If this is
|
| 972 | 972 | -- a fully definite interface, it'll match exactly, but
|
| ... | ... | @@ -975,7 +975,7 @@ read_file hooks logger name_cache unit_state dflags wanted_mod file_path = do |
| 975 | 975 | case getModuleInstantiation wanted_mod of
|
| 976 | 976 | (_, Nothing) -> wanted_mod
|
| 977 | 977 | (_, Just indef_mod) ->
|
| 978 | - instModuleToModule unit_state
|
|
| 978 | + instModuleToModule
|
|
| 979 | 979 | (uninstantiateInstantiatedModule indef_mod)
|
| 980 | 980 | read_result <- readIface hooks logger dflags name_cache wanted_mod' file_path
|
| 981 | 981 | case read_result of
|
| ... | ... | @@ -620,7 +620,7 @@ checkMergedSignatures hsc_env mod_summary self_recomp = do |
| 620 | 620 | new_merged = case lookupUniqMap (requirementContext unit_state)
|
| 621 | 621 | (ms_mod_name mod_summary) of
|
| 622 | 622 | Nothing -> []
|
| 623 | - Just r -> sort $ map (instModuleToModule unit_state) r
|
|
| 623 | + Just r -> sort $ map instModuleToModule r
|
|
| 624 | 624 | if old_merged == new_merged
|
| 625 | 625 | then up_to_date logger (text "signatures to merge in unchanged" $$ ppr new_merged)
|
| 626 | 626 | else return $ needsRecompileBecause SigsMergeChanged
|
| ... | ... | @@ -226,8 +226,8 @@ on-the-fly: |
| 226 | 226 | A 'VirtUnit' may be indefinite or definite, it depends on whether some holes
|
| 227 | 227 | remain in the instantiated unit OR in the instantiating units (recursively).
|
| 228 | 228 | Having a fully instantiated (i.e. definite) virtual unit can lead to some issues
|
| 229 | -if there is a matching compiled unit in the preload closure. See Note [VirtUnit
|
|
| 230 | -to RealUnit improvement]
|
|
| 229 | +if there is a matching compiled unit in the preload closure.
|
|
| 230 | +See Note [VirtUnit to RealUnit improvement]
|
|
| 231 | 231 | |
| 232 | 232 | Unit database and indefinite units
|
| 233 | 233 | ----------------------------------
|
| ... | ... | @@ -314,7 +314,6 @@ field in the SDocContext to pretty-print. |
| 314 | 314 | (i.e. GHC doesn't correctly call `pprWithUnitState` before pretty-printing a
|
| 315 | 315 | UnitId), that's what will be shown to the user so it's no big deal.
|
| 316 | 316 | |
| 317 | - |
|
| 318 | 317 | Note [VirtUnit to RealUnit improvement]
|
| 319 | 318 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
| 320 | 319 | |
| ... | ... | @@ -332,6 +331,8 @@ same type-checking session, their names won't match (e.g. "abc:M.X" vs |
| 332 | 331 | As we want them to match we just replace the virtual unit with the installed
|
| 333 | 332 | one: for some reason this is called "improvement".
|
| 334 | 333 | |
| 334 | +HISTORICAL:
|
|
| 335 | + |
|
| 335 | 336 | There is one last niggle: improvement based on the unit database means
|
| 336 | 337 | that we might end up developing on a unit that is not transitively
|
| 337 | 338 | depended upon by the units the user specified directly via command line
|
| ... | ... | @@ -340,6 +341,12 @@ instantiations are out of date. The solution is to only improve a |
| 340 | 341 | unit id if the new unit id is part of the 'preloadClosure'; i.e., the
|
| 341 | 342 | closure of all the units which were explicitly specified.
|
| 342 | 343 | |
| 344 | +NOTE:
|
|
| 345 | + |
|
| 346 | +The 'preloadClosure' was completely unused, thus we removed it without
|
|
| 347 | +changing any of the tests. It doesn't seem to be necessary any more.
|
|
| 348 | +It is unclear at which exact point this became redundant.
|
|
| 349 | + |
|
| 343 | 350 | Note [Representation of module/name variables]
|
| 344 | 351 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
| 345 | 352 | In our ICFP'16, we use <A> to represent module holes, and {A.T} to represent
|
| ... | ... | @@ -7,7 +7,6 @@ module GHC.Unit.State ( |
| 7 | 7 | |
| 8 | 8 | -- * Reading the package config, and processing cmdline args
|
| 9 | 9 | UnitState(..),
|
| 10 | - PreloadUnitClosure,
|
|
| 11 | 10 | UnitDatabase (..),
|
| 12 | 11 | UnitErr (..),
|
| 13 | 12 | emptyUnitState,
|
| ... | ... | @@ -29,7 +28,6 @@ module GHC.Unit.State ( |
| 29 | 28 | |
| 30 | 29 | lookupPackageName,
|
| 31 | 30 | resolvePackageImport,
|
| 32 | - improveUnit,
|
|
| 33 | 31 | searchPackageId,
|
| 34 | 32 | listVisibleModuleNames,
|
| 35 | 33 | lookupModuleInAllUnits,
|
| ... | ... | @@ -89,7 +87,6 @@ import GHC.Unit.Home |
| 89 | 87 | |
| 90 | 88 | import GHC.Types.Unique.FM
|
| 91 | 89 | import GHC.Types.Unique.DFM
|
| 92 | -import GHC.Types.Unique.Set
|
|
| 93 | 90 | import GHC.Types.Unique.DSet
|
| 94 | 91 | import GHC.Types.Unique.Map
|
| 95 | 92 | import GHC.Types.Unique
|
| ... | ... | @@ -268,8 +265,6 @@ originEmpty :: ModuleOrigin -> Bool |
| 268 | 265 | originEmpty (ModOrigin Nothing [] [] False) = True
|
| 269 | 266 | originEmpty _ = False
|
| 270 | 267 | |
| 271 | -type PreloadUnitClosure = UniqSet UnitId
|
|
| 272 | - |
|
| 273 | 268 | -- | 'UniqFM' map from 'Unit' to a 'UnitVisibility'.
|
| 274 | 269 | type VisibilityMap = UniqMap Unit UnitVisibility
|
| 275 | 270 | |
| ... | ... | @@ -432,13 +427,6 @@ data UnitState = UnitState { |
| 432 | 427 | -- may have the 'exposed' flag be 'False'.)
|
| 433 | 428 | unitInfoMap :: UnitInfoMap,
|
| 434 | 429 | |
| 435 | - -- | The set of transitively reachable units according
|
|
| 436 | - -- to the explicitly provided command line arguments.
|
|
| 437 | - -- A fully instantiated VirtUnit may only be replaced by a RealUnit from
|
|
| 438 | - -- this set.
|
|
| 439 | - -- See Note [VirtUnit to RealUnit improvement]
|
|
| 440 | - preloadClosure :: PreloadUnitClosure,
|
|
| 441 | - |
|
| 442 | 430 | -- | A mapping of 'PackageName' to 'UnitId'. If several units have the same
|
| 443 | 431 | -- package name (e.g. different instantiations), then we return one of them...
|
| 444 | 432 | -- This is used when users refer to packages in Backpack includes.
|
| ... | ... | @@ -491,7 +479,6 @@ data UnitState = UnitState { |
| 491 | 479 | emptyUnitState :: UnitState
|
| 492 | 480 | emptyUnitState = UnitState {
|
| 493 | 481 | unitInfoMap = emptyUniqMap,
|
| 494 | - preloadClosure = emptyUniqSet,
|
|
| 495 | 482 | packageNameMap = emptyUFM,
|
| 496 | 483 | wireMap = emptyUniqMap,
|
| 497 | 484 | unwireMap = emptyUniqMap,
|
| ... | ... | @@ -517,7 +504,7 @@ type UnitInfoMap = UniqMap UnitId UnitInfo |
| 517 | 504 | |
| 518 | 505 | -- | Find the unit we know about with the given unit, if any
|
| 519 | 506 | lookupUnit :: UnitState -> Unit -> Maybe UnitInfo
|
| 520 | -lookupUnit pkgs = lookupUnit' (allowVirtualUnits pkgs) (unitInfoMap pkgs) (preloadClosure pkgs)
|
|
| 507 | +lookupUnit pkgs = lookupUnit' (allowVirtualUnits pkgs) (unitInfoMap pkgs)
|
|
| 521 | 508 | |
| 522 | 509 | -- | A more specialized interface, which doesn't require a 'UnitState' (so it
|
| 523 | 510 | -- can be used while we're initializing 'DynFlags')
|
| ... | ... | @@ -525,16 +512,15 @@ lookupUnit pkgs = lookupUnit' (allowVirtualUnits pkgs) (unitInfoMap pkgs) (prelo |
| 525 | 512 | -- Parameters:
|
| 526 | 513 | -- * a boolean specifying whether or not to look for on-the-fly renamed interfaces
|
| 527 | 514 | -- * a 'UnitInfoMap'
|
| 528 | --- * a 'PreloadUnitClosure'
|
|
| 529 | -lookupUnit' :: Bool -> UnitInfoMap -> PreloadUnitClosure -> Unit -> Maybe UnitInfo
|
|
| 530 | -lookupUnit' allowOnTheFlyInst pkg_map closure u = case u of
|
|
| 515 | +lookupUnit' :: Bool -> UnitInfoMap -> Unit -> Maybe UnitInfo
|
|
| 516 | +lookupUnit' allowOnTheFlyInst pkg_map u = case u of
|
|
| 531 | 517 | HoleUnit -> error "Hole unit"
|
| 532 | 518 | RealUnit i -> lookupUniqMap pkg_map (unDefinite i)
|
| 533 | 519 | VirtUnit i
|
| 534 | 520 | | allowOnTheFlyInst
|
| 535 | 521 | -> -- lookup UnitInfo of the indefinite unit to be instantiated and
|
| 536 | 522 | -- instantiate it on-the-fly
|
| 537 | - fmap (renameUnitInfo pkg_map closure (instUnitInsts i))
|
|
| 523 | + fmap (renameUnitInfo pkg_map (instUnitInsts i))
|
|
| 538 | 524 | (lookupUniqMap pkg_map (instUnitInstanceOf i))
|
| 539 | 525 | |
| 540 | 526 | | otherwise
|
| ... | ... | @@ -908,7 +894,6 @@ applyTrustFlag prec_map unusable pkgs flag = |
| 908 | 894 | applyPackageFlag
|
| 909 | 895 | :: UnitPrecedenceMap
|
| 910 | 896 | -> UnitInfoMap
|
| 911 | - -> PreloadUnitClosure
|
|
| 912 | 897 | -> UnusableUnits
|
| 913 | 898 | -> Bool -- if False, if you expose a package, it implicitly hides
|
| 914 | 899 | -- any previously exposed packages with the same name
|
| ... | ... | @@ -917,10 +902,10 @@ applyPackageFlag |
| 917 | 902 | -> PackageFlag -- flag to apply
|
| 918 | 903 | -> MaybeErr UnitErr VisibilityMap -- Now exposed
|
| 919 | 904 | |
| 920 | -applyPackageFlag prec_map pkg_map closure unusable no_hide_others pkgs vm flag =
|
|
| 905 | +applyPackageFlag prec_map pkg_map unusable no_hide_others pkgs vm flag =
|
|
| 921 | 906 | case flag of
|
| 922 | 907 | ExposePackage _ arg (ModRenaming b rns) ->
|
| 923 | - case findPackages prec_map pkg_map closure arg pkgs unusable of
|
|
| 908 | + case findPackages prec_map pkg_map arg pkgs unusable of
|
|
| 924 | 909 | Left ps -> Failed (PackageFlagErr flag ps)
|
| 925 | 910 | Right (p:_) -> Succeeded vm'
|
| 926 | 911 | where
|
| ... | ... | @@ -984,7 +969,7 @@ applyPackageFlag prec_map pkg_map closure unusable no_hide_others pkgs vm flag = |
| 984 | 969 | _ -> panic "applyPackageFlag"
|
| 985 | 970 | |
| 986 | 971 | HidePackage str ->
|
| 987 | - case findPackages prec_map pkg_map closure (PackageArg str) pkgs unusable of
|
|
| 972 | + case findPackages prec_map pkg_map (PackageArg str) pkgs unusable of
|
|
| 988 | 973 | Left ps -> Failed (PackageFlagErr flag ps)
|
| 989 | 974 | Right ps -> Succeeded $ foldl' delFromUniqMap vm (map mkUnit ps)
|
| 990 | 975 | |
| ... | ... | @@ -993,12 +978,11 @@ applyPackageFlag prec_map pkg_map closure unusable no_hide_others pkgs vm flag = |
| 993 | 978 | -- if the 'UnitArg' has a renaming associated with it.
|
| 994 | 979 | findPackages :: UnitPrecedenceMap
|
| 995 | 980 | -> UnitInfoMap
|
| 996 | - -> PreloadUnitClosure
|
|
| 997 | 981 | -> PackageArg -> [UnitInfo]
|
| 998 | 982 | -> UnusableUnits
|
| 999 | 983 | -> Either [(UnitInfo, UnusableUnitReason)]
|
| 1000 | 984 | [UnitInfo]
|
| 1001 | -findPackages prec_map pkg_map closure arg pkgs unusable
|
|
| 985 | +findPackages prec_map pkg_map arg pkgs unusable
|
|
| 1002 | 986 | = let ps = mapMaybe (finder arg) pkgs
|
| 1003 | 987 | in if null ps
|
| 1004 | 988 | then Left (mapMaybe (\(x,y) -> finder arg x >>= \x' -> return (x',y))
|
| ... | ... | @@ -1016,7 +1000,7 @@ findPackages prec_map pkg_map closure arg pkgs unusable |
| 1016 | 1000 | -> Just p
|
| 1017 | 1001 | VirtUnit inst
|
| 1018 | 1002 | | instUnitInstanceOf inst == unitId p
|
| 1019 | - -> Just (renameUnitInfo pkg_map closure (instUnitInsts inst) p)
|
|
| 1003 | + -> Just (renameUnitInfo pkg_map (instUnitInsts inst) p)
|
|
| 1020 | 1004 | _ -> Nothing
|
| 1021 | 1005 | |
| 1022 | 1006 | selectPackages :: UnitPrecedenceMap -> PackageArg -> [UnitInfo]
|
| ... | ... | @@ -1031,10 +1015,10 @@ selectPackages prec_map arg pkgs unusable |
| 1031 | 1015 | else Right (sortByPreference prec_map ps, rest)
|
| 1032 | 1016 | |
| 1033 | 1017 | -- | Rename a 'UnitInfo' according to some module instantiation.
|
| 1034 | -renameUnitInfo :: UnitInfoMap -> PreloadUnitClosure -> [(ModuleName, Module)] -> UnitInfo -> UnitInfo
|
|
| 1035 | -renameUnitInfo pkg_map closure insts conf =
|
|
| 1018 | +renameUnitInfo :: UnitInfoMap -> [(ModuleName, Module)] -> UnitInfo -> UnitInfo
|
|
| 1019 | +renameUnitInfo pkg_map insts conf =
|
|
| 1036 | 1020 | let hsubst = listToUFM insts
|
| 1037 | - smod = renameHoleModule' pkg_map closure hsubst
|
|
| 1021 | + smod = renameHoleModule' pkg_map hsubst
|
|
| 1038 | 1022 | new_insts = map (\(k,v) -> (k,smod v)) (unitInstantiations conf)
|
| 1039 | 1023 | in conf {
|
| 1040 | 1024 | unitInstantiations = new_insts,
|
| ... | ... | @@ -1632,7 +1616,7 @@ mkUnitState logger cfg = do |
| 1632 | 1616 | -- user tries to enable an unusable package, we should let them know.
|
| 1633 | 1617 | --
|
| 1634 | 1618 | vis_map2 <- mayThrowUnitErr
|
| 1635 | - $ foldM (applyPackageFlag prec_map prelim_pkg_db emptyUniqSet unusable
|
|
| 1619 | + $ foldM (applyPackageFlag prec_map prelim_pkg_db unusable
|
|
| 1636 | 1620 | (unitConfigHideAll cfg) pkgs1)
|
| 1637 | 1621 | vis_map1 other_flags
|
| 1638 | 1622 | |
| ... | ... | @@ -1661,7 +1645,7 @@ mkUnitState logger cfg = do |
| 1661 | 1645 | | otherwise = vis_map2
|
| 1662 | 1646 | plugin_vis_map2
|
| 1663 | 1647 | <- mayThrowUnitErr
|
| 1664 | - $ foldM (applyPackageFlag prec_map prelim_pkg_db emptyUniqSet unusable
|
|
| 1648 | + $ foldM (applyPackageFlag prec_map prelim_pkg_db unusable
|
|
| 1665 | 1649 | hide_plugin_pkgs pkgs1)
|
| 1666 | 1650 | plugin_vis_map1
|
| 1667 | 1651 | (reverse (unitConfigFlagsPlugins cfg))
|
| ... | ... | @@ -1713,7 +1697,7 @@ mkUnitState logger cfg = do |
| 1713 | 1697 | $ closeUnitDeps pkg_db
|
| 1714 | 1698 | $ zip (map toUnitId preload3) (repeat Nothing)
|
| 1715 | 1699 | |
| 1716 | - let mod_map1 = mkModuleNameProvidersMap logger cfg pkg_db emptyUniqSet vis_map
|
|
| 1700 | + let mod_map1 = mkModuleNameProvidersMap logger cfg pkg_db vis_map
|
|
| 1717 | 1701 | mod_map2 = mkUnusableModuleNameProvidersMap unusable
|
| 1718 | 1702 | mod_map = mod_map2 `plusUniqMap` mod_map1
|
| 1719 | 1703 | |
| ... | ... | @@ -1723,9 +1707,8 @@ mkUnitState logger cfg = do |
| 1723 | 1707 | , explicitUnits = explicit_pkgs
|
| 1724 | 1708 | , homeUnitDepends = home_unit_deps
|
| 1725 | 1709 | , unitInfoMap = pkg_db
|
| 1726 | - , preloadClosure = emptyUniqSet
|
|
| 1727 | 1710 | , moduleNameProvidersMap = mod_map
|
| 1728 | - , pluginModuleNameProvidersMap = mkModuleNameProvidersMap logger cfg pkg_db emptyUniqSet plugin_vis_map
|
|
| 1711 | + , pluginModuleNameProvidersMap = mkModuleNameProvidersMap logger cfg pkg_db plugin_vis_map
|
|
| 1729 | 1712 | , packageNameMap = pkgname_map
|
| 1730 | 1713 | , wireMap = wired_map
|
| 1731 | 1714 | , unwireMap = listToUniqMap [ (v,k) | (k,v) <- nonDetUniqMapToList wired_map ]
|
| ... | ... | @@ -1765,10 +1748,9 @@ mkModuleNameProvidersMap |
| 1765 | 1748 | :: Logger
|
| 1766 | 1749 | -> UnitConfig
|
| 1767 | 1750 | -> UnitInfoMap
|
| 1768 | - -> PreloadUnitClosure
|
|
| 1769 | 1751 | -> VisibilityMap
|
| 1770 | 1752 | -> ModuleNameProvidersMap
|
| 1771 | -mkModuleNameProvidersMap logger cfg pkg_map closure vis_map =
|
|
| 1753 | +mkModuleNameProvidersMap logger cfg pkg_map vis_map =
|
|
| 1772 | 1754 | -- What should we fold on? Both situations are awkward:
|
| 1773 | 1755 | --
|
| 1774 | 1756 | -- * Folding on the visibility map means that we won't create
|
| ... | ... | @@ -1840,7 +1822,7 @@ mkModuleNameProvidersMap logger cfg pkg_map closure vis_map = |
| 1840 | 1822 | hiddens = [(m, mkModMap pk m ModHidden) | m <- hidden_mods]
|
| 1841 | 1823 | |
| 1842 | 1824 | pk = mkUnit pkg
|
| 1843 | - unit_lookup uid = lookupUnit' (unitConfigAllowVirtual cfg) pkg_map closure uid
|
|
| 1825 | + unit_lookup uid = lookupUnit' (unitConfigAllowVirtual cfg) pkg_map uid
|
|
| 1844 | 1826 | `orElse` pprPanic "unit_lookup" (ppr uid)
|
| 1845 | 1827 | |
| 1846 | 1828 | exposed_mods = unitExposedModules pkg
|
| ... | ... | @@ -2191,44 +2173,16 @@ fsPackageName info = fs |
| 2191 | 2173 | where
|
| 2192 | 2174 | PackageName fs = unitPackageName info
|
| 2193 | 2175 | |
| 2194 | - |
|
| 2195 | --- | Given a fully instantiated 'InstantiatedUnit', improve it into a
|
|
| 2196 | --- 'RealUnit' if we can find it in the package database.
|
|
| 2197 | -improveUnit :: UnitState -> Unit -> Unit
|
|
| 2198 | -improveUnit state u = improveUnit' (unitInfoMap state) (preloadClosure state) u
|
|
| 2199 | - |
|
| 2200 | --- | Given a fully instantiated 'InstantiatedUnit', improve it into a
|
|
| 2201 | --- 'RealUnit' if we can find it in the package database.
|
|
| 2202 | -improveUnit' :: UnitInfoMap -> PreloadUnitClosure -> Unit -> Unit
|
|
| 2203 | -improveUnit' _ _ uid@(RealUnit _) = uid -- short circuit
|
|
| 2204 | -improveUnit' pkg_map closure uid =
|
|
| 2205 | - -- Do NOT lookup indefinite ones, they won't be useful!
|
|
| 2206 | - case lookupUnit' False pkg_map closure uid of
|
|
| 2207 | - Nothing -> uid
|
|
| 2208 | - Just pkg ->
|
|
| 2209 | - -- Do NOT improve if the indefinite unit id is not
|
|
| 2210 | - -- part of the closure unique set. See
|
|
| 2211 | - -- Note [VirtUnit to RealUnit improvement]
|
|
| 2212 | - if unitId pkg `elementOfUniqSet` closure
|
|
| 2213 | - then mkUnit pkg
|
|
| 2214 | - else uid
|
|
| 2215 | - |
|
| 2216 | --- | Check the database to see if we already have an installed unit that
|
|
| 2217 | --- corresponds to the given 'InstantiatedUnit'.
|
|
| 2218 | ---
|
|
| 2219 | --- Return a `UnitId` which either wraps the `InstantiatedUnit` unchanged or
|
|
| 2220 | --- references a matching installed unit.
|
|
| 2221 | ---
|
|
| 2222 | --- See Note [VirtUnit to RealUnit improvement]
|
|
| 2223 | -instUnitToUnit :: UnitState -> InstantiatedUnit -> Unit
|
|
| 2224 | -instUnitToUnit state iuid =
|
|
| 2176 | +-- | Return a `UnitId` which either wraps the `InstantiatedUnit` unchanged.
|
|
| 2177 | +instUnitToUnit :: InstantiatedUnit -> Unit
|
|
| 2178 | +instUnitToUnit iuid =
|
|
| 2225 | 2179 | -- NB: suppose that we want to compare the instantiated
|
| 2226 | 2180 | -- unit p[H=impl:H] against p+abcd (where p+abcd
|
| 2227 | 2181 | -- happens to be the existing, installed version of
|
| 2228 | 2182 | -- p[H=impl:H]. If we *only* wrap in p[H=impl:H]
|
| 2229 | 2183 | -- VirtUnit, they won't compare equal; only
|
| 2230 | 2184 | -- after improvement will the equality hold.
|
| 2231 | - improveUnit state $ VirtUnit iuid
|
|
| 2185 | + VirtUnit iuid
|
|
| 2232 | 2186 | |
| 2233 | 2187 | |
| 2234 | 2188 | -- | Substitution on module variables, mapping module names to module
|
| ... | ... | @@ -2240,30 +2194,30 @@ type ShHoleSubst = ModuleNameEnv Module |
| 2240 | 2194 | -- @p[A=\<A>]:B@ maps to @p[A=q():A]:B@ with @A=q():A@;
|
| 2241 | 2195 | -- similarly, @\<A>@ maps to @q():A@.
|
| 2242 | 2196 | renameHoleModule :: UnitState -> ShHoleSubst -> Module -> Module
|
| 2243 | -renameHoleModule state = renameHoleModule' (unitInfoMap state) (preloadClosure state)
|
|
| 2197 | +renameHoleModule state = renameHoleModule' (unitInfoMap state)
|
|
| 2244 | 2198 | |
| 2245 | 2199 | -- | Substitutes holes in a 'Unit', suitable for renaming when
|
| 2246 | 2200 | -- an include occurs; see Note [Representation of module/name variables].
|
| 2247 | 2201 | --
|
| 2248 | 2202 | -- @p[A=\<A>]@ maps to @p[A=\<B>]@ with @A=\<B>@.
|
| 2249 | 2203 | renameHoleUnit :: UnitState -> ShHoleSubst -> Unit -> Unit
|
| 2250 | -renameHoleUnit state = renameHoleUnit' (unitInfoMap state) (preloadClosure state)
|
|
| 2204 | +renameHoleUnit state = renameHoleUnit' (unitInfoMap state)
|
|
| 2251 | 2205 | |
| 2252 | --- | Like 'renameHoleModule', but requires only 'ClosureUnitInfoMap'
|
|
| 2206 | +-- | Like 'renameHoleModule', but requires only 'UnitInfoMap'
|
|
| 2253 | 2207 | -- so it can be used by "GHC.Unit.State".
|
| 2254 | -renameHoleModule' :: UnitInfoMap -> PreloadUnitClosure -> ShHoleSubst -> Module -> Module
|
|
| 2255 | -renameHoleModule' pkg_map closure env m
|
|
| 2208 | +renameHoleModule' :: UnitInfoMap -> ShHoleSubst -> Module -> Module
|
|
| 2209 | +renameHoleModule' pkg_map env m
|
|
| 2256 | 2210 | | not (isHoleModule m) =
|
| 2257 | - let uid = renameHoleUnit' pkg_map closure env (moduleUnit m)
|
|
| 2211 | + let uid = renameHoleUnit' pkg_map env (moduleUnit m)
|
|
| 2258 | 2212 | in mkModule uid (moduleName m)
|
| 2259 | 2213 | | Just m' <- lookupUFM env (moduleName m) = m'
|
| 2260 | 2214 | -- NB m = <Blah>, that's what's in scope.
|
| 2261 | 2215 | | otherwise = m
|
| 2262 | 2216 | |
| 2263 | --- | Like 'renameHoleUnit, but requires only 'ClosureUnitInfoMap'
|
|
| 2217 | +-- | Like 'renameHoleUnit', but requires only 'UnitInfoMap'
|
|
| 2264 | 2218 | -- so it can be used by "GHC.Unit.State".
|
| 2265 | -renameHoleUnit' :: UnitInfoMap -> PreloadUnitClosure -> ShHoleSubst -> Unit -> Unit
|
|
| 2266 | -renameHoleUnit' pkg_map closure env uid =
|
|
| 2219 | +renameHoleUnit' :: UnitInfoMap -> ShHoleSubst -> Unit -> Unit
|
|
| 2220 | +renameHoleUnit' pkg_map env uid =
|
|
| 2267 | 2221 | case uid of
|
| 2268 | 2222 | (VirtUnit
|
| 2269 | 2223 | InstantiatedUnit{ instUnitInstanceOf = cid
|
| ... | ... | @@ -2271,20 +2225,15 @@ renameHoleUnit' pkg_map closure env uid = |
| 2271 | 2225 | , instUnitHoles = fh })
|
| 2272 | 2226 | -> if isNullUFM (intersectUFM_C const (udfmToUfm (getUniqDSet fh)) env)
|
| 2273 | 2227 | then uid
|
| 2274 | - -- Functorially apply the substitution to the instantiation,
|
|
| 2275 | - -- then check the 'ClosureUnitInfoMap' to see if there is
|
|
| 2276 | - -- a compiled version of this 'InstantiatedUnit' we can improve to.
|
|
| 2277 | - -- See Note [VirtUnit to RealUnit improvement]
|
|
| 2278 | - else improveUnit' pkg_map closure $
|
|
| 2279 | - mkVirtUnit cid
|
|
| 2280 | - (map (\(k,v) -> (k, renameHoleModule' pkg_map closure env v)) insts)
|
|
| 2228 | + else mkVirtUnit cid
|
|
| 2229 | + (map (\(k,v) -> (k, renameHoleModule' pkg_map env v)) insts)
|
|
| 2281 | 2230 | _ -> uid
|
| 2282 | 2231 | |
| 2283 | 2232 | -- | Injects an 'InstantiatedModule' to 'Module' (see also
|
| 2284 | 2233 | -- 'instUnitToUnit'.
|
| 2285 | -instModuleToModule :: UnitState -> InstantiatedModule -> Module
|
|
| 2286 | -instModuleToModule pkgstate (Module iuid mod_name) =
|
|
| 2287 | - mkModule (instUnitToUnit pkgstate iuid) mod_name
|
|
| 2234 | +instModuleToModule :: InstantiatedModule -> Module
|
|
| 2235 | +instModuleToModule (Module iuid mod_name) =
|
|
| 2236 | + mkModule (instUnitToUnit iuid) mod_name
|
|
| 2288 | 2237 | |
| 2289 | 2238 | -- | Print unit-ids with UnitInfo found in the given UnitState
|
| 2290 | 2239 | pprWithUnitState :: UnitState -> SDoc -> SDoc
|
| ... | ... | @@ -250,9 +250,7 @@ data GenUnit uid |
| 250 | 250 | --
|
| 251 | 251 | -- This unit may be indefinite or not (i.e. with remaining holes or not). If it
|
| 252 | 252 | -- is definite, we don't know if it has already been compiled and installed in a
|
| 253 | --- database. Nevertheless, we have a mechanism called "improvement" to try to
|
|
| 254 | --- match a fully instantiated unit with existing compiled and installed units:
|
|
| 255 | --- see Note [VirtUnit to RealUnit improvement].
|
|
| 253 | +-- database.
|
|
| 256 | 254 | --
|
| 257 | 255 | -- An indefinite unit identifier pretty-prints to something like
|
| 258 | 256 | -- @p[H=<H>,A=aimpl:A>]@ (@p@ is the 'UnitId', and the
|
| ... | ... | @@ -551,7 +551,15 @@ undefined or implementation specific in Haskell 98. |
| 551 | 551 | ``Int32``, ``Int64`` and the unsigned ``Word`` variants), see the
|
| 552 | 552 | modules ``Data.Int`` and ``Data.Word`` in the library documentation.
|
| 553 | 553 | |
| 554 | -Unchecked floating-point arithmetic
|
|
| 554 | +``Float`` and ``Double``
|
|
| 555 | + .. index::
|
|
| 556 | + single: Float
|
|
| 557 | + single: Double
|
|
| 558 | + single: IEEE 754
|
|
| 559 | + |
|
| 560 | + In GHC, ``Float`` and ``Double`` are represented according to the
|
|
| 561 | + IEEE 754 standard binary32 and binary64 formats, respectively.
|
|
| 562 | + |
|
| 555 | 563 | Operations on ``Float`` and ``Double`` numbers are *unchecked* for
|
| 556 | 564 | overflow, underflow, and other sad occurrences. (note, however, that
|
| 557 | 565 | some architectures trap floating-point overflow and
|
| ... | ... | @@ -49,8 +49,10 @@ Library |
| 49 | 49 | , Data.Bounded
|
| 50 | 50 | , Data.Char
|
| 51 | 51 | , Data.Complex
|
| 52 | + , Data.Double
|
|
| 52 | 53 | , Data.Enum
|
| 53 | 54 | , Data.Fixed
|
| 55 | + , Data.Float
|
|
| 54 | 56 | , Data.Foldable1
|
| 55 | 57 | , Data.Functor.Classes
|
| 56 | 58 | , Data.Functor.Compose
|
| ... | ... | @@ -2,7 +2,9 @@ |
| 2 | 2 | |
| 3 | 3 | ## 4.24.0.0 *TBA*
|
| 4 | 4 | * Add `Bounded` instances for `Double`, `Float`, `CDouble` and `CFloat`. ([CLC proposal #402](https://github.com/haskell/core-libraries-committee/issues/402))
|
| 5 | + * Add `Data.List.NonEmpty.{zip{3..7},zipWith{3..7},unzip{3..7}}` ([CLC proposal #409)(https://github.com/haskell/core-libraries-committee/issues/409))
|
|
| 5 | 6 | * Ensure that `Data.List.elem` and `notElem` can be specialized even when no list fusion happens. ([CLC proposal #412)(https://github.com/haskell/core-libraries-committee/issues/412))
|
| 7 | + * Introduce `Data.Double` and `Data.Float` modules. ([CLC proposal #378](https://github.com/haskell/core-libraries-committee/issues/378))
|
|
| 6 | 8 | |
| 7 | 9 | ## 4.23.0.0 *TBA*
|
| 8 | 10 | * Add `System.IO.hGetNewlineMode`. ([CLC proposal #370](https://github.com/haskell/core-libraries-committee/issues/370))
|
| 1 | +{-# LANGUAGE Safe #-}
|
|
| 2 | + |
|
| 3 | +-- |
|
|
| 4 | +--
|
|
| 5 | +-- Module : Data.Double
|
|
| 6 | +-- Copyright : (c) GHC contributors 2026
|
|
| 7 | +-- License : BSD-style (see the file libraries/base/LICENSE)
|
|
| 8 | +--
|
|
| 9 | +-- Maintainer : Core Libraries Committee
|
|
| 10 | +-- Stability : stable
|
|
| 11 | +-- Portability : portable
|
|
| 12 | +--
|
|
| 13 | +-- 'Double' and associated functions.
|
|
| 14 | +module Data.Double
|
|
| 15 | + ( Double
|
|
| 16 | + , castWord64ToDouble
|
|
| 17 | + , castDoubleToWord64
|
|
| 18 | + ) where
|
|
| 19 | + |
|
| 20 | +import GHC.Float |
|
| \ No newline at end of file |
| 1 | +{-# LANGUAGE Safe #-}
|
|
| 2 | + |
|
| 3 | +-- |
|
|
| 4 | +--
|
|
| 5 | +-- Module : Data.Float
|
|
| 6 | +-- Copyright : (c) GHC contributors 2026
|
|
| 7 | +-- License : BSD-style (see the file libraries/base/LICENSE)
|
|
| 8 | +--
|
|
| 9 | +-- Maintainer : Core Libraries Committee
|
|
| 10 | +-- Stability : stable
|
|
| 11 | +-- Portability : portable
|
|
| 12 | +--
|
|
| 13 | +-- 'Float' and associated functions.
|
|
| 14 | +module Data.Float
|
|
| 15 | + ( Float
|
|
| 16 | + , castWord32ToFloat
|
|
| 17 | + , castFloatToWord32
|
|
| 18 | + ) where
|
|
| 19 | + |
|
| 20 | +import GHC.Float |
|
| \ No newline at end of file |
| ... | ... | @@ -99,10 +99,29 @@ module Data.List.NonEmpty ( |
| 99 | 99 | , nubOrdBy -- :: (a -> a -> Ordering) -> NonEmpty a -> NonEmpty a
|
| 100 | 100 | -- * Indexing streams
|
| 101 | 101 | , (!!) -- :: NonEmpty a -> Int -> a
|
| 102 | + |
|
| 102 | 103 | -- * Zipping and unzipping streams
|
| 103 | - , zip -- :: NonEmpty a -> NonEmpty b -> NonEmpty (a,b)
|
|
| 104 | - , zipWith -- :: (a -> b -> c) -> NonEmpty a -> NonEmpty b -> NonEmpty c
|
|
| 105 | - , unzip -- :: Functor f => f (a,b) -> (f a, f b)
|
|
| 104 | + , zip
|
|
| 105 | + , zip3
|
|
| 106 | + , zip4
|
|
| 107 | + , zip5
|
|
| 108 | + , zip6
|
|
| 109 | + , zip7
|
|
| 110 | + |
|
| 111 | + , zipWith
|
|
| 112 | + , zipWith3
|
|
| 113 | + , zipWith4
|
|
| 114 | + , zipWith5
|
|
| 115 | + , zipWith6
|
|
| 116 | + , zipWith7
|
|
| 117 | + |
|
| 118 | + , unzip
|
|
| 119 | + , unzip3
|
|
| 120 | + , unzip4
|
|
| 121 | + , unzip5
|
|
| 122 | + , unzip6
|
|
| 123 | + , unzip7
|
|
| 124 | + |
|
| 106 | 125 | -- * Converting to and from a list
|
| 107 | 126 | , fromList -- :: [a] -> NonEmpty a
|
| 108 | 127 | , toList -- :: NonEmpty a -> [a]
|
| ... | ... | @@ -116,7 +135,7 @@ import Prelude hiding (break, cycle, drop, dropWhile, |
| 116 | 135 | last, length, map, repeat, reverse,
|
| 117 | 136 | scanl, scanl1, scanr, scanr1, span,
|
| 118 | 137 | splitAt, tail, take, takeWhile,
|
| 119 | - unzip, zip, zipWith, (!!), Applicative(..))
|
|
| 138 | + unzip, unzip3, zip, zip3, zipWith, zipWith3, (!!), Applicative(..))
|
|
| 120 | 139 | import qualified Prelude
|
| 121 | 140 | |
| 122 | 141 | import Control.Applicative (Applicative (..), Alternative (many))
|
| ... | ... | @@ -560,12 +579,97 @@ isPrefixOf (y:ys) (x :| xs) = (y == x) && List.isPrefixOf ys xs |
| 560 | 579 | | otherwise = error "NonEmpty.!! negative index"
|
| 561 | 580 | infixl 9 !!
|
| 562 | 581 | |
| 582 | +-- | The 'zip3' function takes three streams and returns a stream of
|
|
| 583 | +-- corresponding triples.
|
|
| 584 | +zip3 :: NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty (a, b, c)
|
|
| 585 | +zip3 (x :| xs) (y :| ys) (z :| zs) = (x, y, z) :| List.zip3 xs ys zs
|
|
| 586 | + |
|
| 587 | +-- | The 'zip4' function takes four streams and returns a stream of
|
|
| 588 | +-- corresponding quadruples.
|
|
| 589 | +zip4 :: NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty (a, b, c, d)
|
|
| 590 | +zip4 (x :| xs) (y :| ys) (z :| zs) (t :| ts) = (x, y, z, t) :| List.zip4 xs ys zs ts
|
|
| 591 | + |
|
| 592 | +-- | The 'zip5' function takes five streams and returns a stream of
|
|
| 593 | +-- corresponding quintuples.
|
|
| 594 | +zip5 :: NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty (a, b, c, d, e)
|
|
| 595 | +zip5 (x :| xs) (y :| ys) (z :| zs) (t :| ts) (u :| us) = (x, y, z, t, u) :| List.zip5 xs ys zs ts us
|
|
| 596 | + |
|
| 597 | +-- | The 'zip6' function takes six streams and returns a stream of
|
|
| 598 | +-- corresponding sextuples.
|
|
| 599 | +zip6 :: NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty (a, b, c, d, e, f)
|
|
| 600 | +zip6 (x :| xs) (y :| ys) (z :| zs) (t :| ts) (u :| us) (v :| vs) = (x, y, z, t, u, v) :| List.zip6 xs ys zs ts us vs
|
|
| 601 | + |
|
| 602 | +-- | The 'zip7' function takes seven streams and returns a stream of
|
|
| 603 | +-- corresponding septuples.
|
|
| 604 | +zip7 :: NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty (a, b, c, d, e, f, g)
|
|
| 605 | +zip7 (x :| xs) (y :| ys) (z :| zs) (t :| ts) (u :| us) (v :| vs) (w :| ws) = (x, y, z, t, u, v, w) :| List.zip7 xs ys zs ts us vs ws
|
|
| 606 | + |
|
| 607 | +-- | The 'zipWith3' function generalizes 'zip3'. Rather than tupling
|
|
| 608 | +-- the elements, the elements are combined using the function
|
|
| 609 | +-- passed as the first argument.
|
|
| 610 | +zipWith3 :: (a -> b -> c -> d) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d
|
|
| 611 | +zipWith3 f (x :| xs) (y :| ys) (z :| zs) = f x y z :| List.zipWith3 f xs ys zs
|
|
| 612 | + |
|
| 613 | +-- | The 'zipWith4' function generalizes 'zip4'. Rather than tupling
|
|
| 614 | +-- the elements, the elements are combined using the function
|
|
| 615 | +-- passed as the first argument.
|
|
| 616 | +zipWith4 :: (a -> b -> c -> d -> e) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e
|
|
| 617 | +zipWith4 f (x :| xs) (y :| ys) (z :| zs) (t :| ts) = f x y z t :| List.zipWith4 f xs ys zs ts
|
|
| 618 | + |
|
| 619 | +-- | The 'zipWith5' function generalizes 'zip5'. Rather than tupling
|
|
| 620 | +-- the elements, the elements are combined using the function
|
|
| 621 | +-- passed as the first argument.
|
|
| 622 | +zipWith5 :: (a -> b -> c -> d -> e -> f) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f
|
|
| 623 | +zipWith5 f (x :| xs) (y :| ys) (z :| zs) (t :| ts) (u :| us) = f x y z t u :| List.zipWith5 f xs ys zs ts us
|
|
| 624 | + |
|
| 625 | +-- | The 'zipWith6' function generalizes 'zip6'. Rather than tupling
|
|
| 626 | +-- the elements, the elements are combined using the function
|
|
| 627 | +-- passed as the first argument.
|
|
| 628 | +zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g
|
|
| 629 | +zipWith6 f (x :| xs) (y :| ys) (z :| zs) (t :| ts) (u :| us) (v :| vs) = f x y z t u v :| List.zipWith6 f xs ys zs ts us vs
|
|
| 630 | + |
|
| 631 | +-- | The 'zipWith7' function generalizes 'zip7'. Rather than tupling
|
|
| 632 | +-- the elements, the elements are combined using the function
|
|
| 633 | +-- passed as the first argument.
|
|
| 634 | +zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty h
|
|
| 635 | +zipWith7 f (x :| xs) (y :| ys) (z :| zs) (t :| ts) (u :| us) (v :| vs) (w :| ws) = f x y z t u v w :| List.zipWith7 f xs ys zs ts us vs ws
|
|
| 636 | + |
|
| 563 | 637 | -- | The 'unzip' function is the inverse of the 'zip' function.
|
| 564 | 638 | unzip :: NonEmpty (a, b) -> (NonEmpty a, NonEmpty b)
|
| 565 | 639 | unzip ((a, b) :| asbs) = (a :| as, b :| bs)
|
| 566 | 640 | where
|
| 567 | 641 | (as, bs) = List.unzip asbs
|
| 568 | 642 | |
| 643 | +-- | The 'unzip3' function is the inverse of the 'zip3' function.
|
|
| 644 | +unzip3 :: NonEmpty (a, b, c) -> (NonEmpty a, NonEmpty b, NonEmpty c)
|
|
| 645 | +unzip3 ((a, b, c) :| asbscs) = (a :| as, b :| bs, c :| cs)
|
|
| 646 | + where
|
|
| 647 | + (as, bs, cs) = List.unzip3 asbscs
|
|
| 648 | + |
|
| 649 | +-- | The 'unzip4' function is the inverse of the 'zip4' function.
|
|
| 650 | +unzip4 :: NonEmpty (a, b, c, d) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d)
|
|
| 651 | +unzip4 ((a, b, c, d) :| asbscsds) = (a :| as, b :| bs, c :| cs, d :| ds)
|
|
| 652 | + where
|
|
| 653 | + (as, bs, cs, ds) = List.unzip4 asbscsds
|
|
| 654 | + |
|
| 655 | +-- | The 'unzip5' function is the inverse of the 'zip5' function.
|
|
| 656 | +unzip5 :: NonEmpty (a, b, c, d, e) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e)
|
|
| 657 | +unzip5 ((a, b, c, d, e) :| asbscsdses) = (a :| as, b :| bs, c :| cs, d :| ds, e :| es)
|
|
| 658 | + where
|
|
| 659 | + (as, bs, cs, ds, es) = List.unzip5 asbscsdses
|
|
| 660 | + |
|
| 661 | +-- | The 'unzip6' function is the inverse of the 'zip6' function.
|
|
| 662 | +unzip6 :: NonEmpty (a, b, c, d, e, f) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f)
|
|
| 663 | +unzip6 ((a, b, c, d, e, f) :| asbscsdsesfs) = (a :| as, b :| bs, c :| cs, d :| ds, e :| es, f :| fs)
|
|
| 664 | + where
|
|
| 665 | + (as, bs, cs, ds, es, fs) = List.unzip6 asbscsdsesfs
|
|
| 666 | + |
|
| 667 | +-- | The 'unzip7' function is the inverse of the 'zip7' function.
|
|
| 668 | +unzip7 :: NonEmpty (a, b, c, d, e, f, g) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f, NonEmpty g)
|
|
| 669 | +unzip7 ((a, b, c, d, e, f, g) :| asbscsdsesfsgs) = (a :| as, b :| bs, c :| cs, d :| ds, e :| es, f :| fs, g :| gs)
|
|
| 670 | + where
|
|
| 671 | + (as, bs, cs, ds, es, fs, gs) = List.unzip7 asbscsdsesfsgs
|
|
| 672 | + |
|
| 569 | 673 | -- | The 'nub' function removes duplicate elements from a list. In
|
| 570 | 674 | -- particular, it keeps only the first occurrence of each element.
|
| 571 | 675 | -- (The name 'nub' means \'essence\'.)
|
| ... | ... | @@ -1812,8 +1812,8 @@ stgWord32ToFloat :: Word32# -> Float# |
| 1812 | 1812 | stgWord32ToFloat = castWord32ToFloat#
|
| 1813 | 1813 | |
| 1814 | 1814 | |
| 1815 | --- | @'castWord32ToFloat' w@ does a bit-for-bit copy from an integral value
|
|
| 1816 | --- to a floating-point value.
|
|
| 1815 | +-- | @'castWord32ToFloat' w@ does a bit-for-bit copy from a 'Word32'
|
|
| 1816 | +-- to a 'Float', according to the IEEE 754 binary32 format.
|
|
| 1817 | 1817 | --
|
| 1818 | 1818 | -- @since base-4.11.0.0
|
| 1819 | 1819 | |
| ... | ... | @@ -1821,8 +1821,8 @@ stgWord32ToFloat = castWord32ToFloat# |
| 1821 | 1821 | castWord32ToFloat :: Word32 -> Float
|
| 1822 | 1822 | castWord32ToFloat (W32# w#) = F# (castWord32ToFloat# w#)
|
| 1823 | 1823 | |
| 1824 | --- | @'castFloatToWord32' f@ does a bit-for-bit copy from a floating-point value
|
|
| 1825 | --- to an integral value.
|
|
| 1824 | +-- | @'castFloatToWord32' f@ does a bit-for-bit copy from a 'Float'
|
|
| 1825 | +-- to a 'Word32', according to the IEEE 754 binary32 format.
|
|
| 1826 | 1826 | --
|
| 1827 | 1827 | -- @since base-4.11.0.0
|
| 1828 | 1828 | |
| ... | ... | @@ -1830,8 +1830,8 @@ castWord32ToFloat (W32# w#) = F# (castWord32ToFloat# w#) |
| 1830 | 1830 | castFloatToWord32 :: Float -> Word32
|
| 1831 | 1831 | castFloatToWord32 (F# f#) = W32# (castFloatToWord32# f#)
|
| 1832 | 1832 | |
| 1833 | --- | @'castWord64ToDouble' w@ does a bit-for-bit copy from an integral value
|
|
| 1834 | --- to a floating-point value.
|
|
| 1833 | +-- | @'castWord64ToDouble' w@ does a bit-for-bit copy from a 'Word64'
|
|
| 1834 | +-- to a 'Double', according to the IEEE 754 binary64 format.
|
|
| 1835 | 1835 | --
|
| 1836 | 1836 | -- @since base-4.11.0.0
|
| 1837 | 1837 | |
| ... | ... | @@ -1839,8 +1839,8 @@ castFloatToWord32 (F# f#) = W32# (castFloatToWord32# f#) |
| 1839 | 1839 | castWord64ToDouble :: Word64 -> Double
|
| 1840 | 1840 | castWord64ToDouble (W64# w) = D# (castWord64ToDouble# w)
|
| 1841 | 1841 | |
| 1842 | --- | @'castDoubleToWord64' f@ does a bit-for-bit copy from a floating-point value
|
|
| 1843 | --- to an integral value.
|
|
| 1842 | +-- | @'castDoubleToWord64' f@ does a bit-for-bit copy from a 'Double'
|
|
| 1843 | +-- to a 'Word64', according to the IEEE 754 binary64 format.
|
|
| 1844 | 1844 | --
|
| 1845 | 1845 | -- @since base-4.11.0.0
|
| 1846 | 1846 |
| ... | ... | @@ -25,7 +25,9 @@ |
| 25 | 25 | // registers EAX, EDX, and ECX instead of on the stack. Functions that
|
| 26 | 26 | // take a variable number of arguments will continue to be passed all of
|
| 27 | 27 | // their arguments on the stack.
|
| 28 | -#if defined(x86_64_HOST_ARCH) || defined(i386_HOST_ARCH)
|
|
| 28 | +// On x86-64 the attribute has no effect (the first argument is already
|
|
| 29 | +// passed in a register) and GCC 16 warns that it is ignored.
|
|
| 30 | +#if defined(i386_HOST_ARCH)
|
|
| 29 | 31 | #define REGPARM1 __attribute__((regparm(1)))
|
| 30 | 32 | #else
|
| 31 | 33 | #define REGPARM1
|
| 1 | 1 | import GHC.Float
|
| 2 | 2 | |
| 3 | +{-# OPAQUE noinline #-}
|
|
| 4 | +noinline :: a -> a
|
|
| 5 | +noinline x = x
|
|
| 6 | + |
|
| 3 | 7 | main :: IO ()
|
| 4 | 8 | main = do
|
| 5 | 9 | -- As per #16617, Word32s should be non-negative
|
| 6 | 10 | print $ castFloatToWord32 (-1)
|
| 7 | 11 | print $ toInteger (castFloatToWord32 (-1)) > 0
|
| 12 | + -- Disable constant folding; see #27300
|
|
| 13 | + print $ castFloatToWord32 (noinline $ -1)
|
|
| 14 | + print $ toInteger (castFloatToWord32 (noinline $ -1)) > 0
|
|
| 8 | 15 | -- For completeness, so should Word64s
|
| 9 | 16 | print $ castDoubleToWord64 (-1)
|
| 10 | 17 | print $ toInteger (castDoubleToWord64 (-1)) > 0
|
| 18 | + print $ castDoubleToWord64 (noinline $ -1)
|
|
| 19 | + print $ toInteger (castDoubleToWord64 (noinline $ -1)) > 0 |
| 1 | 1 | 3212836864
|
| 2 | 2 | True
|
| 3 | +3212836864
|
|
| 4 | +True
|
|
| 5 | +13830554455654793216
|
|
| 6 | +True
|
|
| 3 | 7 | 13830554455654793216
|
| 4 | 8 | True |
| ... | ... | @@ -936,6 +936,13 @@ module Data.Data where |
| 936 | 936 | typeRepFingerprint :: TypeRep -> GHC.Internal.Fingerprint.Type.Fingerprint
|
| 937 | 937 | typeRepTyCon :: TypeRep -> TyCon
|
| 938 | 938 | |
| 939 | +module Data.Double where
|
|
| 940 | + -- Safety: Safe
|
|
| 941 | + type Double :: *
|
|
| 942 | + data Double = ...
|
|
| 943 | + castDoubleToWord64 :: Double -> GHC.Internal.Word.Word64
|
|
| 944 | + castWord64ToDouble :: GHC.Internal.Word.Word64 -> Double
|
|
| 945 | + |
|
| 939 | 946 | module Data.Dynamic where
|
| 940 | 947 | -- Safety: Safe
|
| 941 | 948 | type Dynamic :: *
|
| ... | ... | @@ -1035,6 +1042,13 @@ module Data.Fixed where |
| 1035 | 1042 | mod' :: forall a. GHC.Internal.Real.Real a => a -> a -> a
|
| 1036 | 1043 | showFixed :: forall {k} (a :: k). HasResolution a => GHC.Internal.Types.Bool -> Fixed a -> GHC.Internal.Base.String
|
| 1037 | 1044 | |
| 1045 | +module Data.Float where
|
|
| 1046 | + -- Safety: Safe
|
|
| 1047 | + type Float :: *
|
|
| 1048 | + data Float = ...
|
|
| 1049 | + castFloatToWord32 :: Float -> GHC.Internal.Word.Word32
|
|
| 1050 | + castWord32ToFloat :: GHC.Internal.Word.Word32 -> Float
|
|
| 1051 | + |
|
| 1038 | 1052 | module Data.Foldable where
|
| 1039 | 1053 | -- Safety: Safe
|
| 1040 | 1054 | type Foldable :: (* -> *) -> Constraint
|
| ... | ... | @@ -1507,9 +1521,24 @@ module Data.List.NonEmpty where |
| 1507 | 1521 | unfold :: forall a b. (a -> (b, GHC.Internal.Maybe.Maybe a)) -> a -> NonEmpty b
|
| 1508 | 1522 | unfoldr :: forall a b. (a -> (b, GHC.Internal.Maybe.Maybe a)) -> a -> NonEmpty b
|
| 1509 | 1523 | unzip :: forall a b. NonEmpty (a, b) -> (NonEmpty a, NonEmpty b)
|
| 1524 | + unzip3 :: forall a b c. NonEmpty (a, b, c) -> (NonEmpty a, NonEmpty b, NonEmpty c)
|
|
| 1525 | + unzip4 :: forall a b c d. NonEmpty (a, b, c, d) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d)
|
|
| 1526 | + unzip5 :: forall a b c d e. NonEmpty (a, b, c, d, e) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e)
|
|
| 1527 | + unzip6 :: forall a b c d e f. NonEmpty (a, b, c, d, e, f) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f)
|
|
| 1528 | + unzip7 :: forall a b c d e f g. NonEmpty (a, b, c, d, e, f, g) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f, NonEmpty g)
|
|
| 1510 | 1529 | xor :: NonEmpty GHC.Internal.Types.Bool -> GHC.Internal.Types.Bool
|
| 1511 | 1530 | zip :: forall a b. NonEmpty a -> NonEmpty b -> NonEmpty (a, b)
|
| 1531 | + zip3 :: forall a b c. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty (a, b, c)
|
|
| 1532 | + zip4 :: forall a b c d. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty (a, b, c, d)
|
|
| 1533 | + zip5 :: forall a b c d e. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty (a, b, c, d, e)
|
|
| 1534 | + zip6 :: forall a b c d e f. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty (a, b, c, d, e, f)
|
|
| 1535 | + zip7 :: forall a b c d e f g. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty (a, b, c, d, e, f, g)
|
|
| 1512 | 1536 | zipWith :: forall a b c. (a -> b -> c) -> NonEmpty a -> NonEmpty b -> NonEmpty c
|
| 1537 | + zipWith3 :: forall a b c d. (a -> b -> c -> d) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d
|
|
| 1538 | + zipWith4 :: forall a b c d e. (a -> b -> c -> d -> e) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e
|
|
| 1539 | + zipWith5 :: forall a b c d e f. (a -> b -> c -> d -> e -> f) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f
|
|
| 1540 | + zipWith6 :: forall a b c d e f g. (a -> b -> c -> d -> e -> f -> g) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g
|
|
| 1541 | + zipWith7 :: forall a b c d e f g h. (a -> b -> c -> d -> e -> f -> g -> h) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty h
|
|
| 1513 | 1542 | |
| 1514 | 1543 | module Data.Maybe where
|
| 1515 | 1544 | -- Safety: Safe
|
| ... | ... | @@ -11874,6 +11903,8 @@ instance GHC.Internal.Enum.Bounded GHC.Internal.Unicode.GeneralCategory -- Defin |
| 11874 | 11903 | instance forall k (a :: k) (b :: k). (a ~ b) => GHC.Internal.Enum.Bounded (a GHC.Internal.Data.Type.Equality.:~: b) -- Defined in ‘GHC.Internal.Data.Type.Equality’
|
| 11875 | 11904 | instance forall k1 k2 (a :: k1) (b :: k2). (a ~~ b) => GHC.Internal.Enum.Bounded (a GHC.Internal.Data.Type.Equality.:~~: b) -- Defined in ‘GHC.Internal.Data.Type.Equality’
|
| 11876 | 11905 | instance forall k (t :: k). GHC.Internal.Enum.Bounded (GHC.Internal.Data.Proxy.Proxy t) -- Defined in ‘GHC.Internal.Data.Proxy’
|
| 11906 | +instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 11907 | +instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 11877 | 11908 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Enum.Bounded (f (g a)) => GHC.Internal.Enum.Bounded (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 11878 | 11909 | instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| 11879 | 11910 | instance GHC.Internal.Enum.Bounded GHC.Internal.Int.Int16 -- Defined in ‘GHC.Internal.Int’
|
| ... | ... | @@ -11922,8 +11953,6 @@ instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CULong -- Define |
| 11922 | 11953 | instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 11923 | 11954 | instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 11924 | 11955 | instance GHC.Internal.Enum.Bounded GHC.Internal.ByteOrder.ByteOrder -- Defined in ‘GHC.Internal.ByteOrder’
|
| 11925 | -instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 11926 | -instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 11927 | 11956 | instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.Associativity -- Defined in ‘GHC.Internal.Generics’
|
| 11928 | 11957 | instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.DecidedStrictness -- Defined in ‘GHC.Internal.Generics’
|
| 11929 | 11958 | instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.SourceStrictness -- Defined in ‘GHC.Internal.Generics’
|
| ... | ... | @@ -11949,6 +11978,8 @@ instance GHC.Internal.Enum.Enum GHC.Internal.Unicode.GeneralCategory -- Defined |
| 11949 | 11978 | instance forall k (a :: k) (b :: k). (a ~ b) => GHC.Internal.Enum.Enum (a GHC.Internal.Data.Type.Equality.:~: b) -- Defined in ‘GHC.Internal.Data.Type.Equality’
|
| 11950 | 11979 | instance forall k1 k2 (a :: k1) (b :: k2). (a ~~ b) => GHC.Internal.Enum.Enum (a GHC.Internal.Data.Type.Equality.:~~: b) -- Defined in ‘GHC.Internal.Data.Type.Equality’
|
| 11951 | 11980 | instance forall k (s :: k). GHC.Internal.Enum.Enum (GHC.Internal.Data.Proxy.Proxy s) -- Defined in ‘GHC.Internal.Data.Proxy’
|
| 11981 | +instance GHC.Internal.Enum.Enum GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 11982 | +instance GHC.Internal.Enum.Enum GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 11952 | 11983 | instance [safe] forall k (a :: k). GHC.Internal.Enum.Enum (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| 11953 | 11984 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Enum.Enum (f (g a)) => GHC.Internal.Enum.Enum (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 11954 | 11985 | instance forall a. GHC.Internal.Enum.Enum a => GHC.Internal.Enum.Enum (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| ... | ... | @@ -11999,8 +12030,6 @@ instance GHC.Internal.Enum.Enum GHC.Internal.Foreign.C.Types.CUSeconds -- Define |
| 11999 | 12030 | instance GHC.Internal.Enum.Enum GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12000 | 12031 | instance GHC.Internal.Enum.Enum GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12001 | 12032 | instance GHC.Internal.Enum.Enum GHC.Internal.ByteOrder.ByteOrder -- Defined in ‘GHC.Internal.ByteOrder’
|
| 12002 | -instance GHC.Internal.Enum.Enum GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12003 | -instance GHC.Internal.Enum.Enum GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12004 | 12033 | instance GHC.Internal.Enum.Enum GHC.Internal.Generics.Associativity -- Defined in ‘GHC.Internal.Generics’
|
| 12005 | 12034 | instance GHC.Internal.Enum.Enum GHC.Internal.Generics.DecidedStrictness -- Defined in ‘GHC.Internal.Generics’
|
| 12006 | 12035 | instance GHC.Internal.Enum.Enum GHC.Internal.Generics.SourceStrictness -- Defined in ‘GHC.Internal.Generics’
|
| ... | ... | @@ -12043,22 +12072,22 @@ instance [safe] GHC.Internal.Exception.Type.Exception ghc-internal-10.100.0:GHC. |
| 12043 | 12072 | instance [safe] GHC.Internal.Exception.Type.Exception System.Timeout.Timeout -- Defined in ‘System.Timeout’
|
| 12044 | 12073 | instance forall k a (b :: k). GHC.Internal.Float.Floating a => GHC.Internal.Float.Floating (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12045 | 12074 | instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Float.Floating (Data.Complex.Complex a) -- Defined in ‘Data.Complex’
|
| 12075 | +instance GHC.Internal.Float.Floating GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12076 | +instance GHC.Internal.Float.Floating GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12046 | 12077 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Float.Floating (f (g a)) => GHC.Internal.Float.Floating (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12047 | 12078 | instance forall a b. GHC.Internal.Float.Floating a => GHC.Internal.Float.Floating (Data.Functor.Contravariant.Op a b) -- Defined in ‘Data.Functor.Contravariant’
|
| 12048 | 12079 | instance forall a. GHC.Internal.Float.Floating a => GHC.Internal.Float.Floating (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| 12049 | 12080 | instance forall a. GHC.Internal.Float.Floating a => GHC.Internal.Float.Floating (GHC.Internal.Data.Ord.Down a) -- Defined in ‘GHC.Internal.Data.Ord’
|
| 12050 | 12081 | instance GHC.Internal.Float.Floating GHC.Internal.Foreign.C.Types.CDouble -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12051 | 12082 | instance GHC.Internal.Float.Floating GHC.Internal.Foreign.C.Types.CFloat -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12052 | -instance GHC.Internal.Float.Floating GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12053 | -instance GHC.Internal.Float.Floating GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12054 | 12083 | instance forall k a (b :: k). GHC.Internal.Float.RealFloat a => GHC.Internal.Float.RealFloat (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12084 | +instance GHC.Internal.Float.RealFloat GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12085 | +instance GHC.Internal.Float.RealFloat GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12055 | 12086 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Float.RealFloat (f (g a)) => GHC.Internal.Float.RealFloat (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12056 | 12087 | instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Float.RealFloat (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| 12057 | 12088 | instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Float.RealFloat (GHC.Internal.Data.Ord.Down a) -- Defined in ‘GHC.Internal.Data.Ord’
|
| 12058 | 12089 | instance GHC.Internal.Float.RealFloat GHC.Internal.Foreign.C.Types.CDouble -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12059 | 12090 | instance GHC.Internal.Float.RealFloat GHC.Internal.Foreign.C.Types.CFloat -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12060 | -instance GHC.Internal.Float.RealFloat GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12061 | -instance GHC.Internal.Float.RealFloat GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12062 | 12091 | instance forall k a (b :: k). GHC.Internal.Foreign.Storable.Storable a => GHC.Internal.Foreign.Storable.Storable (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12063 | 12092 | instance forall a. GHC.Internal.Foreign.Storable.Storable a => GHC.Internal.Foreign.Storable.Storable (Data.Complex.Complex a) -- Defined in ‘Data.Complex’
|
| 12064 | 12093 | instance forall a. GHC.Internal.Foreign.Storable.Storable a => GHC.Internal.Foreign.Storable.Storable (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| ... | ... | @@ -12373,6 +12402,8 @@ instance GHC.Internal.Ix.Ix GHC.Internal.IO.Device.SeekMode -- Defined in ‘GHC |
| 12373 | 12402 | instance GHC.Internal.Ix.Ix GHC.Internal.IO.IOMode.IOMode -- Defined in ‘GHC.Internal.IO.IOMode’
|
| 12374 | 12403 | instance forall k a (b :: k). GHC.Internal.Num.Num a => GHC.Internal.Num.Num (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12375 | 12404 | instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Num.Num (Data.Complex.Complex a) -- Defined in ‘Data.Complex’
|
| 12405 | +instance GHC.Internal.Num.Num GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12406 | +instance GHC.Internal.Num.Num GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12376 | 12407 | instance [safe] forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Num.Num (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| 12377 | 12408 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Num.Num (f (g a)) => GHC.Internal.Num.Num (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12378 | 12409 | instance forall a b. GHC.Internal.Num.Num a => GHC.Internal.Num.Num (Data.Functor.Contravariant.Op a b) -- Defined in ‘Data.Functor.Contravariant’
|
| ... | ... | @@ -12421,8 +12452,6 @@ instance GHC.Internal.Num.Num GHC.Internal.Foreign.C.Types.CULong -- Defined in |
| 12421 | 12452 | instance GHC.Internal.Num.Num GHC.Internal.Foreign.C.Types.CUSeconds -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12422 | 12453 | instance GHC.Internal.Num.Num GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12423 | 12454 | instance GHC.Internal.Num.Num GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12424 | -instance GHC.Internal.Num.Num GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12425 | -instance GHC.Internal.Num.Num GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12426 | 12455 | instance GHC.Internal.Num.Num GHC.Internal.Types.Int -- Defined in ‘GHC.Internal.Num’
|
| 12427 | 12456 | instance GHC.Internal.Num.Num GHC.Internal.Bignum.Integer.Integer -- Defined in ‘GHC.Internal.Num’
|
| 12428 | 12457 | instance GHC.Internal.Num.Num GHC.Internal.Bignum.Natural.Natural -- Defined in ‘GHC.Internal.Num’
|
| ... | ... | @@ -12558,6 +12587,8 @@ instance GHC.Internal.Read.Read GHC.Internal.IO.Handle.Types.NewlineMode -- Defi |
| 12558 | 12587 | instance GHC.Internal.Read.Read GHC.Internal.IO.Device.SeekMode -- Defined in ‘System.IO’
|
| 12559 | 12588 | instance forall k a (b :: k). GHC.Internal.Real.Fractional a => GHC.Internal.Real.Fractional (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12560 | 12589 | instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Real.Fractional (Data.Complex.Complex a) -- Defined in ‘Data.Complex’
|
| 12590 | +instance GHC.Internal.Real.Fractional GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12591 | +instance GHC.Internal.Real.Fractional GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12561 | 12592 | instance [safe] forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Real.Fractional (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| 12562 | 12593 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Real.Fractional (f (g a)) => GHC.Internal.Real.Fractional (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12563 | 12594 | instance forall a b. GHC.Internal.Real.Fractional a => GHC.Internal.Real.Fractional (Data.Functor.Contravariant.Op a b) -- Defined in ‘Data.Functor.Contravariant’
|
| ... | ... | @@ -12566,8 +12597,6 @@ instance forall a. GHC.Internal.Real.Fractional a => GHC.Internal.Real.Fractiona |
| 12566 | 12597 | instance forall a. GHC.Internal.Real.Integral a => GHC.Internal.Real.Fractional (GHC.Internal.Real.Ratio a) -- Defined in ‘GHC.Internal.Real’
|
| 12567 | 12598 | instance GHC.Internal.Real.Fractional GHC.Internal.Foreign.C.Types.CDouble -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12568 | 12599 | instance GHC.Internal.Real.Fractional GHC.Internal.Foreign.C.Types.CFloat -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12569 | -instance GHC.Internal.Real.Fractional GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12570 | -instance GHC.Internal.Real.Fractional GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12571 | 12600 | instance forall k a (b :: k). GHC.Internal.Real.Integral a => GHC.Internal.Real.Integral (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12572 | 12601 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Real.Integral (f (g a)) => GHC.Internal.Real.Integral (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12573 | 12602 | instance forall a. GHC.Internal.Real.Integral a => GHC.Internal.Real.Integral (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| ... | ... | @@ -12606,6 +12635,8 @@ instance GHC.Internal.Real.Integral GHC.Internal.Foreign.C.Types.CULong -- Defin |
| 12606 | 12635 | instance GHC.Internal.Real.Integral GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12607 | 12636 | instance GHC.Internal.Real.Integral GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12608 | 12637 | instance forall k a (b :: k). GHC.Internal.Real.Real a => GHC.Internal.Real.Real (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12638 | +instance GHC.Internal.Real.Real GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12639 | +instance GHC.Internal.Real.Real GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12609 | 12640 | instance [safe] forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Real.Real (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| 12610 | 12641 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Real.Real (f (g a)) => GHC.Internal.Real.Real (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12611 | 12642 | instance forall a. GHC.Internal.Real.Real a => GHC.Internal.Real.Real (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| ... | ... | @@ -12651,9 +12682,9 @@ instance GHC.Internal.Real.Real GHC.Internal.Foreign.C.Types.CULong -- Defined i |
| 12651 | 12682 | instance GHC.Internal.Real.Real GHC.Internal.Foreign.C.Types.CUSeconds -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12652 | 12683 | instance GHC.Internal.Real.Real GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12653 | 12684 | instance GHC.Internal.Real.Real GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12654 | -instance GHC.Internal.Real.Real GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12655 | -instance GHC.Internal.Real.Real GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12656 | 12685 | instance forall k a (b :: k). GHC.Internal.Real.RealFrac a => GHC.Internal.Real.RealFrac (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12686 | +instance GHC.Internal.Real.RealFrac GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12687 | +instance GHC.Internal.Real.RealFrac GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12657 | 12688 | instance [safe] forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Real.RealFrac (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| 12658 | 12689 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Real.RealFrac (f (g a)) => GHC.Internal.Real.RealFrac (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12659 | 12690 | instance forall a. GHC.Internal.Real.RealFrac a => GHC.Internal.Real.RealFrac (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| ... | ... | @@ -12661,8 +12692,6 @@ instance forall a. GHC.Internal.Real.RealFrac a => GHC.Internal.Real.RealFrac (G |
| 12661 | 12692 | instance forall a. GHC.Internal.Real.Integral a => GHC.Internal.Real.RealFrac (GHC.Internal.Real.Ratio a) -- Defined in ‘GHC.Internal.Real’
|
| 12662 | 12693 | instance GHC.Internal.Real.RealFrac GHC.Internal.Foreign.C.Types.CDouble -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12663 | 12694 | instance GHC.Internal.Real.RealFrac GHC.Internal.Foreign.C.Types.CFloat -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12664 | -instance GHC.Internal.Real.RealFrac GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12665 | -instance GHC.Internal.Real.RealFrac GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12666 | 12695 | instance forall k a (b :: k). GHC.Internal.Show.Show a => GHC.Internal.Show.Show (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12667 | 12696 | instance forall a. GHC.Internal.Show.Show a => GHC.Internal.Show.Show (GHC.Internal.Functor.ZipList.ZipList a) -- Defined in ‘GHC.Internal.Functor.ZipList’
|
| 12668 | 12697 | instance GHC.Internal.Show.Show GHC.Internal.Conc.Sync.BlockReason -- Defined in ‘GHC.Internal.Conc.Sync’
|
| ... | ... | @@ -12753,6 +12782,8 @@ instance GHC.Internal.Show.Show GHC.Internal.Data.Data.Fixity -- Defined in ‘G |
| 12753 | 12782 | instance forall k (s :: k). GHC.Internal.Show.Show (GHC.Internal.Data.Proxy.Proxy s) -- Defined in ‘GHC.Internal.Data.Proxy’
|
| 12754 | 12783 | instance GHC.Internal.Show.Show ghc-internal-10.100.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep -- Defined in ‘ghc-internal-10.100.0:GHC.Internal.Data.Typeable.Internal’
|
| 12755 | 12784 | instance forall k (a :: k). GHC.Internal.Show.Show (ghc-internal-10.100.0:GHC.Internal.Data.Typeable.Internal.TypeRep a) -- Defined in ‘ghc-internal-10.100.0:GHC.Internal.Data.Typeable.Internal’
|
| 12785 | +instance GHC.Internal.Show.Show GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12786 | +instance GHC.Internal.Show.Show GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12756 | 12787 | instance GHC.Internal.Show.Show GHC.Internal.Data.Dynamic.Dynamic -- Defined in ‘GHC.Internal.Data.Dynamic’
|
| 12757 | 12788 | instance forall a b. (GHC.Internal.Show.Show a, GHC.Internal.Show.Show b) => GHC.Internal.Show.Show (GHC.Internal.Data.Either.Either a b) -- Defined in ‘GHC.Internal.Data.Either’
|
| 12758 | 12789 | instance [safe] forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Show.Show (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| ... | ... | @@ -12831,8 +12862,6 @@ instance GHC.Internal.Show.Show ghc-internal-10.100.0:GHC.Internal.Event.Manager |
| 12831 | 12862 | instance GHC.Internal.Show.Show ghc-internal-10.100.0:GHC.Internal.Event.Manager.State -- Defined in ‘ghc-internal-10.100.0:GHC.Internal.Event.Manager’
|
| 12832 | 12863 | instance GHC.Internal.Show.Show ghc-internal-10.100.0:GHC.Internal.Event.TimerManager.State -- Defined in ‘ghc-internal-10.100.0:GHC.Internal.Event.TimerManager’
|
| 12833 | 12864 | instance GHC.Internal.Show.Show GHC.Internal.Fingerprint.Type.Fingerprint -- Defined in ‘GHC.Internal.Fingerprint.Type’
|
| 12834 | -instance GHC.Internal.Show.Show GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12835 | -instance GHC.Internal.Show.Show GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12836 | 12865 | instance forall k (f :: k -> *) (g :: k -> *) (p :: k). (GHC.Internal.Show.Show (f p), GHC.Internal.Show.Show (g p)) => GHC.Internal.Show.Show ((GHC.Internal.Generics.:*:) f g p) -- Defined in ‘GHC.Internal.Generics’
|
| 12837 | 12866 | instance forall k (f :: k -> *) (g :: k -> *) (p :: k). (GHC.Internal.Show.Show (f p), GHC.Internal.Show.Show (g p)) => GHC.Internal.Show.Show ((GHC.Internal.Generics.:+:) f g p) -- Defined in ‘GHC.Internal.Generics’
|
| 12838 | 12867 | instance forall k2 k1 (f :: k2 -> *) (g :: k1 -> k2) (p :: k1). GHC.Internal.Show.Show (f (g p)) => GHC.Internal.Show.Show ((GHC.Internal.Generics.:.:) f g p) -- Defined in ‘GHC.Internal.Generics’
|
| ... | ... | @@ -936,6 +936,13 @@ module Data.Data where |
| 936 | 936 | typeRepFingerprint :: TypeRep -> GHC.Internal.Fingerprint.Type.Fingerprint
|
| 937 | 937 | typeRepTyCon :: TypeRep -> TyCon
|
| 938 | 938 | |
| 939 | +module Data.Double where
|
|
| 940 | + -- Safety: Safe
|
|
| 941 | + type Double :: *
|
|
| 942 | + data Double = ...
|
|
| 943 | + castDoubleToWord64 :: Double -> GHC.Internal.Word.Word64
|
|
| 944 | + castWord64ToDouble :: GHC.Internal.Word.Word64 -> Double
|
|
| 945 | + |
|
| 939 | 946 | module Data.Dynamic where
|
| 940 | 947 | -- Safety: Safe
|
| 941 | 948 | type Dynamic :: *
|
| ... | ... | @@ -1035,6 +1042,13 @@ module Data.Fixed where |
| 1035 | 1042 | mod' :: forall a. GHC.Internal.Real.Real a => a -> a -> a
|
| 1036 | 1043 | showFixed :: forall {k} (a :: k). HasResolution a => GHC.Internal.Types.Bool -> Fixed a -> GHC.Internal.Base.String
|
| 1037 | 1044 | |
| 1045 | +module Data.Float where
|
|
| 1046 | + -- Safety: Safe
|
|
| 1047 | + type Float :: *
|
|
| 1048 | + data Float = ...
|
|
| 1049 | + castFloatToWord32 :: Float -> GHC.Internal.Word.Word32
|
|
| 1050 | + castWord32ToFloat :: GHC.Internal.Word.Word32 -> Float
|
|
| 1051 | + |
|
| 1038 | 1052 | module Data.Foldable where
|
| 1039 | 1053 | -- Safety: Safe
|
| 1040 | 1054 | type Foldable :: (* -> *) -> Constraint
|
| ... | ... | @@ -1507,9 +1521,24 @@ module Data.List.NonEmpty where |
| 1507 | 1521 | unfold :: forall a b. (a -> (b, GHC.Internal.Maybe.Maybe a)) -> a -> NonEmpty b
|
| 1508 | 1522 | unfoldr :: forall a b. (a -> (b, GHC.Internal.Maybe.Maybe a)) -> a -> NonEmpty b
|
| 1509 | 1523 | unzip :: forall a b. NonEmpty (a, b) -> (NonEmpty a, NonEmpty b)
|
| 1524 | + unzip3 :: forall a b c. NonEmpty (a, b, c) -> (NonEmpty a, NonEmpty b, NonEmpty c)
|
|
| 1525 | + unzip4 :: forall a b c d. NonEmpty (a, b, c, d) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d)
|
|
| 1526 | + unzip5 :: forall a b c d e. NonEmpty (a, b, c, d, e) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e)
|
|
| 1527 | + unzip6 :: forall a b c d e f. NonEmpty (a, b, c, d, e, f) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f)
|
|
| 1528 | + unzip7 :: forall a b c d e f g. NonEmpty (a, b, c, d, e, f, g) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f, NonEmpty g)
|
|
| 1510 | 1529 | xor :: NonEmpty GHC.Internal.Types.Bool -> GHC.Internal.Types.Bool
|
| 1511 | 1530 | zip :: forall a b. NonEmpty a -> NonEmpty b -> NonEmpty (a, b)
|
| 1531 | + zip3 :: forall a b c. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty (a, b, c)
|
|
| 1532 | + zip4 :: forall a b c d. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty (a, b, c, d)
|
|
| 1533 | + zip5 :: forall a b c d e. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty (a, b, c, d, e)
|
|
| 1534 | + zip6 :: forall a b c d e f. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty (a, b, c, d, e, f)
|
|
| 1535 | + zip7 :: forall a b c d e f g. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty (a, b, c, d, e, f, g)
|
|
| 1512 | 1536 | zipWith :: forall a b c. (a -> b -> c) -> NonEmpty a -> NonEmpty b -> NonEmpty c
|
| 1537 | + zipWith3 :: forall a b c d. (a -> b -> c -> d) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d
|
|
| 1538 | + zipWith4 :: forall a b c d e. (a -> b -> c -> d -> e) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e
|
|
| 1539 | + zipWith5 :: forall a b c d e f. (a -> b -> c -> d -> e -> f) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f
|
|
| 1540 | + zipWith6 :: forall a b c d e f g. (a -> b -> c -> d -> e -> f -> g) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g
|
|
| 1541 | + zipWith7 :: forall a b c d e f g h. (a -> b -> c -> d -> e -> f -> g -> h) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty h
|
|
| 1513 | 1542 | |
| 1514 | 1543 | module Data.Maybe where
|
| 1515 | 1544 | -- Safety: Safe
|
| ... | ... | @@ -11901,6 +11930,8 @@ instance GHC.Internal.Enum.Bounded GHC.Internal.Unicode.GeneralCategory -- Defin |
| 11901 | 11930 | instance forall k (a :: k) (b :: k). (a ~ b) => GHC.Internal.Enum.Bounded (a GHC.Internal.Data.Type.Equality.:~: b) -- Defined in ‘GHC.Internal.Data.Type.Equality’
|
| 11902 | 11931 | instance forall k1 k2 (a :: k1) (b :: k2). (a ~~ b) => GHC.Internal.Enum.Bounded (a GHC.Internal.Data.Type.Equality.:~~: b) -- Defined in ‘GHC.Internal.Data.Type.Equality’
|
| 11903 | 11932 | instance forall k (t :: k). GHC.Internal.Enum.Bounded (GHC.Internal.Data.Proxy.Proxy t) -- Defined in ‘GHC.Internal.Data.Proxy’
|
| 11933 | +instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 11934 | +instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 11904 | 11935 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Enum.Bounded (f (g a)) => GHC.Internal.Enum.Bounded (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 11905 | 11936 | instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| 11906 | 11937 | instance GHC.Internal.Enum.Bounded GHC.Internal.Int.Int16 -- Defined in ‘GHC.Internal.Int’
|
| ... | ... | @@ -11949,8 +11980,6 @@ instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CULong -- Define |
| 11949 | 11980 | instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 11950 | 11981 | instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 11951 | 11982 | instance GHC.Internal.Enum.Bounded GHC.Internal.ByteOrder.ByteOrder -- Defined in ‘GHC.Internal.ByteOrder’
|
| 11952 | -instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 11953 | -instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 11954 | 11983 | instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.Associativity -- Defined in ‘GHC.Internal.Generics’
|
| 11955 | 11984 | instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.DecidedStrictness -- Defined in ‘GHC.Internal.Generics’
|
| 11956 | 11985 | instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.SourceStrictness -- Defined in ‘GHC.Internal.Generics’
|
| ... | ... | @@ -11976,6 +12005,8 @@ instance GHC.Internal.Enum.Enum GHC.Internal.Unicode.GeneralCategory -- Defined |
| 11976 | 12005 | instance forall k (a :: k) (b :: k). (a ~ b) => GHC.Internal.Enum.Enum (a GHC.Internal.Data.Type.Equality.:~: b) -- Defined in ‘GHC.Internal.Data.Type.Equality’
|
| 11977 | 12006 | instance forall k1 k2 (a :: k1) (b :: k2). (a ~~ b) => GHC.Internal.Enum.Enum (a GHC.Internal.Data.Type.Equality.:~~: b) -- Defined in ‘GHC.Internal.Data.Type.Equality’
|
| 11978 | 12007 | instance forall k (s :: k). GHC.Internal.Enum.Enum (GHC.Internal.Data.Proxy.Proxy s) -- Defined in ‘GHC.Internal.Data.Proxy’
|
| 12008 | +instance GHC.Internal.Enum.Enum GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12009 | +instance GHC.Internal.Enum.Enum GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 11979 | 12010 | instance [safe] forall k (a :: k). GHC.Internal.Enum.Enum (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| 11980 | 12011 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Enum.Enum (f (g a)) => GHC.Internal.Enum.Enum (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 11981 | 12012 | instance forall a. GHC.Internal.Enum.Enum a => GHC.Internal.Enum.Enum (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| ... | ... | @@ -12026,8 +12057,6 @@ instance GHC.Internal.Enum.Enum GHC.Internal.Foreign.C.Types.CUSeconds -- Define |
| 12026 | 12057 | instance GHC.Internal.Enum.Enum GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12027 | 12058 | instance GHC.Internal.Enum.Enum GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12028 | 12059 | instance GHC.Internal.Enum.Enum GHC.Internal.ByteOrder.ByteOrder -- Defined in ‘GHC.Internal.ByteOrder’
|
| 12029 | -instance GHC.Internal.Enum.Enum GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12030 | -instance GHC.Internal.Enum.Enum GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12031 | 12060 | instance GHC.Internal.Enum.Enum GHC.Internal.Generics.Associativity -- Defined in ‘GHC.Internal.Generics’
|
| 12032 | 12061 | instance GHC.Internal.Enum.Enum GHC.Internal.Generics.DecidedStrictness -- Defined in ‘GHC.Internal.Generics’
|
| 12033 | 12062 | instance GHC.Internal.Enum.Enum GHC.Internal.Generics.SourceStrictness -- Defined in ‘GHC.Internal.Generics’
|
| ... | ... | @@ -12072,22 +12101,22 @@ instance GHC.Internal.Exception.Type.Exception GHC.Internal.JS.Prim.WouldBlockEx |
| 12072 | 12101 | instance [safe] GHC.Internal.Exception.Type.Exception System.Timeout.Timeout -- Defined in ‘System.Timeout’
|
| 12073 | 12102 | instance forall k a (b :: k). GHC.Internal.Float.Floating a => GHC.Internal.Float.Floating (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12074 | 12103 | instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Float.Floating (Data.Complex.Complex a) -- Defined in ‘Data.Complex’
|
| 12104 | +instance GHC.Internal.Float.Floating GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12105 | +instance GHC.Internal.Float.Floating GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12075 | 12106 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Float.Floating (f (g a)) => GHC.Internal.Float.Floating (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12076 | 12107 | instance forall a b. GHC.Internal.Float.Floating a => GHC.Internal.Float.Floating (Data.Functor.Contravariant.Op a b) -- Defined in ‘Data.Functor.Contravariant’
|
| 12077 | 12108 | instance forall a. GHC.Internal.Float.Floating a => GHC.Internal.Float.Floating (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| 12078 | 12109 | instance forall a. GHC.Internal.Float.Floating a => GHC.Internal.Float.Floating (GHC.Internal.Data.Ord.Down a) -- Defined in ‘GHC.Internal.Data.Ord’
|
| 12079 | 12110 | instance GHC.Internal.Float.Floating GHC.Internal.Foreign.C.Types.CDouble -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12080 | 12111 | instance GHC.Internal.Float.Floating GHC.Internal.Foreign.C.Types.CFloat -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12081 | -instance GHC.Internal.Float.Floating GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12082 | -instance GHC.Internal.Float.Floating GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12083 | 12112 | instance forall k a (b :: k). GHC.Internal.Float.RealFloat a => GHC.Internal.Float.RealFloat (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12113 | +instance GHC.Internal.Float.RealFloat GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12114 | +instance GHC.Internal.Float.RealFloat GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12084 | 12115 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Float.RealFloat (f (g a)) => GHC.Internal.Float.RealFloat (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12085 | 12116 | instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Float.RealFloat (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| 12086 | 12117 | instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Float.RealFloat (GHC.Internal.Data.Ord.Down a) -- Defined in ‘GHC.Internal.Data.Ord’
|
| 12087 | 12118 | instance GHC.Internal.Float.RealFloat GHC.Internal.Foreign.C.Types.CDouble -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12088 | 12119 | instance GHC.Internal.Float.RealFloat GHC.Internal.Foreign.C.Types.CFloat -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12089 | -instance GHC.Internal.Float.RealFloat GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12090 | -instance GHC.Internal.Float.RealFloat GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12091 | 12120 | instance forall k a (b :: k). GHC.Internal.Foreign.Storable.Storable a => GHC.Internal.Foreign.Storable.Storable (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12092 | 12121 | instance forall a. GHC.Internal.Foreign.Storable.Storable a => GHC.Internal.Foreign.Storable.Storable (Data.Complex.Complex a) -- Defined in ‘Data.Complex’
|
| 12093 | 12122 | instance forall a. GHC.Internal.Foreign.Storable.Storable a => GHC.Internal.Foreign.Storable.Storable (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| ... | ... | @@ -12402,6 +12431,8 @@ instance GHC.Internal.Ix.Ix GHC.Internal.IO.Device.SeekMode -- Defined in ‘GHC |
| 12402 | 12431 | instance GHC.Internal.Ix.Ix GHC.Internal.IO.IOMode.IOMode -- Defined in ‘GHC.Internal.IO.IOMode’
|
| 12403 | 12432 | instance forall k a (b :: k). GHC.Internal.Num.Num a => GHC.Internal.Num.Num (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12404 | 12433 | instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Num.Num (Data.Complex.Complex a) -- Defined in ‘Data.Complex’
|
| 12434 | +instance GHC.Internal.Num.Num GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12435 | +instance GHC.Internal.Num.Num GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12405 | 12436 | instance [safe] forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Num.Num (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| 12406 | 12437 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Num.Num (f (g a)) => GHC.Internal.Num.Num (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12407 | 12438 | instance forall a b. GHC.Internal.Num.Num a => GHC.Internal.Num.Num (Data.Functor.Contravariant.Op a b) -- Defined in ‘Data.Functor.Contravariant’
|
| ... | ... | @@ -12450,8 +12481,6 @@ instance GHC.Internal.Num.Num GHC.Internal.Foreign.C.Types.CULong -- Defined in |
| 12450 | 12481 | instance GHC.Internal.Num.Num GHC.Internal.Foreign.C.Types.CUSeconds -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12451 | 12482 | instance GHC.Internal.Num.Num GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12452 | 12483 | instance GHC.Internal.Num.Num GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12453 | -instance GHC.Internal.Num.Num GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12454 | -instance GHC.Internal.Num.Num GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12455 | 12484 | instance GHC.Internal.Num.Num GHC.Internal.Types.Int -- Defined in ‘GHC.Internal.Num’
|
| 12456 | 12485 | instance GHC.Internal.Num.Num GHC.Internal.Bignum.Integer.Integer -- Defined in ‘GHC.Internal.Num’
|
| 12457 | 12486 | instance GHC.Internal.Num.Num GHC.Internal.Bignum.Natural.Natural -- Defined in ‘GHC.Internal.Num’
|
| ... | ... | @@ -12587,6 +12616,8 @@ instance GHC.Internal.Read.Read GHC.Internal.IO.Handle.Types.NewlineMode -- Defi |
| 12587 | 12616 | instance GHC.Internal.Read.Read GHC.Internal.IO.Device.SeekMode -- Defined in ‘System.IO’
|
| 12588 | 12617 | instance forall k a (b :: k). GHC.Internal.Real.Fractional a => GHC.Internal.Real.Fractional (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12589 | 12618 | instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Real.Fractional (Data.Complex.Complex a) -- Defined in ‘Data.Complex’
|
| 12619 | +instance GHC.Internal.Real.Fractional GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12620 | +instance GHC.Internal.Real.Fractional GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12590 | 12621 | instance [safe] forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Real.Fractional (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| 12591 | 12622 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Real.Fractional (f (g a)) => GHC.Internal.Real.Fractional (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12592 | 12623 | instance forall a b. GHC.Internal.Real.Fractional a => GHC.Internal.Real.Fractional (Data.Functor.Contravariant.Op a b) -- Defined in ‘Data.Functor.Contravariant’
|
| ... | ... | @@ -12595,8 +12626,6 @@ instance forall a. GHC.Internal.Real.Fractional a => GHC.Internal.Real.Fractiona |
| 12595 | 12626 | instance forall a. GHC.Internal.Real.Integral a => GHC.Internal.Real.Fractional (GHC.Internal.Real.Ratio a) -- Defined in ‘GHC.Internal.Real’
|
| 12596 | 12627 | instance GHC.Internal.Real.Fractional GHC.Internal.Foreign.C.Types.CDouble -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12597 | 12628 | instance GHC.Internal.Real.Fractional GHC.Internal.Foreign.C.Types.CFloat -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12598 | -instance GHC.Internal.Real.Fractional GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12599 | -instance GHC.Internal.Real.Fractional GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12600 | 12629 | instance forall k a (b :: k). GHC.Internal.Real.Integral a => GHC.Internal.Real.Integral (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12601 | 12630 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Real.Integral (f (g a)) => GHC.Internal.Real.Integral (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12602 | 12631 | instance forall a. GHC.Internal.Real.Integral a => GHC.Internal.Real.Integral (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| ... | ... | @@ -12635,6 +12664,8 @@ instance GHC.Internal.Real.Integral GHC.Internal.Foreign.C.Types.CULong -- Defin |
| 12635 | 12664 | instance GHC.Internal.Real.Integral GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12636 | 12665 | instance GHC.Internal.Real.Integral GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12637 | 12666 | instance forall k a (b :: k). GHC.Internal.Real.Real a => GHC.Internal.Real.Real (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12667 | +instance GHC.Internal.Real.Real GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12668 | +instance GHC.Internal.Real.Real GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12638 | 12669 | instance [safe] forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Real.Real (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| 12639 | 12670 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Real.Real (f (g a)) => GHC.Internal.Real.Real (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12640 | 12671 | instance forall a. GHC.Internal.Real.Real a => GHC.Internal.Real.Real (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| ... | ... | @@ -12680,9 +12711,9 @@ instance GHC.Internal.Real.Real GHC.Internal.Foreign.C.Types.CULong -- Defined i |
| 12680 | 12711 | instance GHC.Internal.Real.Real GHC.Internal.Foreign.C.Types.CUSeconds -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12681 | 12712 | instance GHC.Internal.Real.Real GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12682 | 12713 | instance GHC.Internal.Real.Real GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12683 | -instance GHC.Internal.Real.Real GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12684 | -instance GHC.Internal.Real.Real GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12685 | 12714 | instance forall k a (b :: k). GHC.Internal.Real.RealFrac a => GHC.Internal.Real.RealFrac (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12715 | +instance GHC.Internal.Real.RealFrac GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12716 | +instance GHC.Internal.Real.RealFrac GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12686 | 12717 | instance [safe] forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Real.RealFrac (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| 12687 | 12718 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Real.RealFrac (f (g a)) => GHC.Internal.Real.RealFrac (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12688 | 12719 | instance forall a. GHC.Internal.Real.RealFrac a => GHC.Internal.Real.RealFrac (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| ... | ... | @@ -12690,8 +12721,6 @@ instance forall a. GHC.Internal.Real.RealFrac a => GHC.Internal.Real.RealFrac (G |
| 12690 | 12721 | instance forall a. GHC.Internal.Real.Integral a => GHC.Internal.Real.RealFrac (GHC.Internal.Real.Ratio a) -- Defined in ‘GHC.Internal.Real’
|
| 12691 | 12722 | instance GHC.Internal.Real.RealFrac GHC.Internal.Foreign.C.Types.CDouble -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12692 | 12723 | instance GHC.Internal.Real.RealFrac GHC.Internal.Foreign.C.Types.CFloat -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12693 | -instance GHC.Internal.Real.RealFrac GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12694 | -instance GHC.Internal.Real.RealFrac GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12695 | 12724 | instance forall k a (b :: k). GHC.Internal.Show.Show a => GHC.Internal.Show.Show (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12696 | 12725 | instance forall a. GHC.Internal.Show.Show a => GHC.Internal.Show.Show (GHC.Internal.Functor.ZipList.ZipList a) -- Defined in ‘GHC.Internal.Functor.ZipList’
|
| 12697 | 12726 | instance GHC.Internal.Show.Show GHC.Internal.Conc.Sync.BlockReason -- Defined in ‘GHC.Internal.Conc.Sync’
|
| ... | ... | @@ -12782,6 +12811,8 @@ instance GHC.Internal.Show.Show GHC.Internal.Data.Data.Fixity -- Defined in ‘G |
| 12782 | 12811 | instance forall k (s :: k). GHC.Internal.Show.Show (GHC.Internal.Data.Proxy.Proxy s) -- Defined in ‘GHC.Internal.Data.Proxy’
|
| 12783 | 12812 | instance GHC.Internal.Show.Show ghc-internal-10.100.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep -- Defined in ‘ghc-internal-10.100.0:GHC.Internal.Data.Typeable.Internal’
|
| 12784 | 12813 | instance forall k (a :: k). GHC.Internal.Show.Show (ghc-internal-10.100.0:GHC.Internal.Data.Typeable.Internal.TypeRep a) -- Defined in ‘ghc-internal-10.100.0:GHC.Internal.Data.Typeable.Internal’
|
| 12814 | +instance GHC.Internal.Show.Show GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12815 | +instance GHC.Internal.Show.Show GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12785 | 12816 | instance GHC.Internal.Show.Show GHC.Internal.Data.Dynamic.Dynamic -- Defined in ‘GHC.Internal.Data.Dynamic’
|
| 12786 | 12817 | instance forall a b. (GHC.Internal.Show.Show a, GHC.Internal.Show.Show b) => GHC.Internal.Show.Show (GHC.Internal.Data.Either.Either a b) -- Defined in ‘GHC.Internal.Data.Either’
|
| 12787 | 12818 | instance [safe] forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Show.Show (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| ... | ... | @@ -12853,8 +12884,6 @@ instance forall a. GHC.Internal.Show.Show (GHC.Internal.Foreign.C.ConstPtr.Const |
| 12853 | 12884 | instance forall a b. (GHC.Internal.Ix.Ix a, GHC.Internal.Show.Show a, GHC.Internal.Show.Show b) => GHC.Internal.Show.Show (GHC.Internal.Arr.Array a b) -- Defined in ‘GHC.Internal.Arr’
|
| 12854 | 12885 | instance GHC.Internal.Show.Show GHC.Internal.ByteOrder.ByteOrder -- Defined in ‘GHC.Internal.ByteOrder’
|
| 12855 | 12886 | instance GHC.Internal.Show.Show GHC.Internal.Fingerprint.Type.Fingerprint -- Defined in ‘GHC.Internal.Fingerprint.Type’
|
| 12856 | -instance GHC.Internal.Show.Show GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12857 | -instance GHC.Internal.Show.Show GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12858 | 12887 | instance forall k (f :: k -> *) (g :: k -> *) (p :: k). (GHC.Internal.Show.Show (f p), GHC.Internal.Show.Show (g p)) => GHC.Internal.Show.Show ((GHC.Internal.Generics.:*:) f g p) -- Defined in ‘GHC.Internal.Generics’
|
| 12859 | 12888 | instance forall k (f :: k -> *) (g :: k -> *) (p :: k). (GHC.Internal.Show.Show (f p), GHC.Internal.Show.Show (g p)) => GHC.Internal.Show.Show ((GHC.Internal.Generics.:+:) f g p) -- Defined in ‘GHC.Internal.Generics’
|
| 12860 | 12889 | instance forall k2 k1 (f :: k2 -> *) (g :: k1 -> k2) (p :: k1). GHC.Internal.Show.Show (f (g p)) => GHC.Internal.Show.Show ((GHC.Internal.Generics.:.:) f g p) -- Defined in ‘GHC.Internal.Generics’
|
| ... | ... | @@ -936,6 +936,13 @@ module Data.Data where |
| 936 | 936 | typeRepFingerprint :: TypeRep -> GHC.Internal.Fingerprint.Type.Fingerprint
|
| 937 | 937 | typeRepTyCon :: TypeRep -> TyCon
|
| 938 | 938 | |
| 939 | +module Data.Double where
|
|
| 940 | + -- Safety: Safe
|
|
| 941 | + type Double :: *
|
|
| 942 | + data Double = ...
|
|
| 943 | + castDoubleToWord64 :: Double -> GHC.Internal.Word.Word64
|
|
| 944 | + castWord64ToDouble :: GHC.Internal.Word.Word64 -> Double
|
|
| 945 | + |
|
| 939 | 946 | module Data.Dynamic where
|
| 940 | 947 | -- Safety: Safe
|
| 941 | 948 | type Dynamic :: *
|
| ... | ... | @@ -1035,6 +1042,13 @@ module Data.Fixed where |
| 1035 | 1042 | mod' :: forall a. GHC.Internal.Real.Real a => a -> a -> a
|
| 1036 | 1043 | showFixed :: forall {k} (a :: k). HasResolution a => GHC.Internal.Types.Bool -> Fixed a -> GHC.Internal.Base.String
|
| 1037 | 1044 | |
| 1045 | +module Data.Float where
|
|
| 1046 | + -- Safety: Safe
|
|
| 1047 | + type Float :: *
|
|
| 1048 | + data Float = ...
|
|
| 1049 | + castFloatToWord32 :: Float -> GHC.Internal.Word.Word32
|
|
| 1050 | + castWord32ToFloat :: GHC.Internal.Word.Word32 -> Float
|
|
| 1051 | + |
|
| 1038 | 1052 | module Data.Foldable where
|
| 1039 | 1053 | -- Safety: Safe
|
| 1040 | 1054 | type Foldable :: (* -> *) -> Constraint
|
| ... | ... | @@ -1507,9 +1521,24 @@ module Data.List.NonEmpty where |
| 1507 | 1521 | unfold :: forall a b. (a -> (b, GHC.Internal.Maybe.Maybe a)) -> a -> NonEmpty b
|
| 1508 | 1522 | unfoldr :: forall a b. (a -> (b, GHC.Internal.Maybe.Maybe a)) -> a -> NonEmpty b
|
| 1509 | 1523 | unzip :: forall a b. NonEmpty (a, b) -> (NonEmpty a, NonEmpty b)
|
| 1524 | + unzip3 :: forall a b c. NonEmpty (a, b, c) -> (NonEmpty a, NonEmpty b, NonEmpty c)
|
|
| 1525 | + unzip4 :: forall a b c d. NonEmpty (a, b, c, d) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d)
|
|
| 1526 | + unzip5 :: forall a b c d e. NonEmpty (a, b, c, d, e) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e)
|
|
| 1527 | + unzip6 :: forall a b c d e f. NonEmpty (a, b, c, d, e, f) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f)
|
|
| 1528 | + unzip7 :: forall a b c d e f g. NonEmpty (a, b, c, d, e, f, g) -> (NonEmpty a, NonEmpty b, NonEmpty c, NonEmpty d, NonEmpty e, NonEmpty f, NonEmpty g)
|
|
| 1510 | 1529 | xor :: NonEmpty GHC.Internal.Types.Bool -> GHC.Internal.Types.Bool
|
| 1511 | 1530 | zip :: forall a b. NonEmpty a -> NonEmpty b -> NonEmpty (a, b)
|
| 1531 | + zip3 :: forall a b c. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty (a, b, c)
|
|
| 1532 | + zip4 :: forall a b c d. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty (a, b, c, d)
|
|
| 1533 | + zip5 :: forall a b c d e. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty (a, b, c, d, e)
|
|
| 1534 | + zip6 :: forall a b c d e f. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty (a, b, c, d, e, f)
|
|
| 1535 | + zip7 :: forall a b c d e f g. NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty (a, b, c, d, e, f, g)
|
|
| 1512 | 1536 | zipWith :: forall a b c. (a -> b -> c) -> NonEmpty a -> NonEmpty b -> NonEmpty c
|
| 1537 | + zipWith3 :: forall a b c d. (a -> b -> c -> d) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d
|
|
| 1538 | + zipWith4 :: forall a b c d e. (a -> b -> c -> d -> e) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e
|
|
| 1539 | + zipWith5 :: forall a b c d e f. (a -> b -> c -> d -> e -> f) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f
|
|
| 1540 | + zipWith6 :: forall a b c d e f g. (a -> b -> c -> d -> e -> f -> g) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g
|
|
| 1541 | + zipWith7 :: forall a b c d e f g h. (a -> b -> c -> d -> e -> f -> g -> h) -> NonEmpty a -> NonEmpty b -> NonEmpty c -> NonEmpty d -> NonEmpty e -> NonEmpty f -> NonEmpty g -> NonEmpty h
|
|
| 1513 | 1542 | |
| 1514 | 1543 | module Data.Maybe where
|
| 1515 | 1544 | -- Safety: Safe
|
| ... | ... | @@ -12132,6 +12161,8 @@ instance GHC.Internal.Enum.Bounded GHC.Internal.Unicode.GeneralCategory -- Defin |
| 12132 | 12161 | instance forall k (a :: k) (b :: k). (a ~ b) => GHC.Internal.Enum.Bounded (a GHC.Internal.Data.Type.Equality.:~: b) -- Defined in ‘GHC.Internal.Data.Type.Equality’
|
| 12133 | 12162 | instance forall k1 k2 (a :: k1) (b :: k2). (a ~~ b) => GHC.Internal.Enum.Bounded (a GHC.Internal.Data.Type.Equality.:~~: b) -- Defined in ‘GHC.Internal.Data.Type.Equality’
|
| 12134 | 12163 | instance forall k (t :: k). GHC.Internal.Enum.Bounded (GHC.Internal.Data.Proxy.Proxy t) -- Defined in ‘GHC.Internal.Data.Proxy’
|
| 12164 | +instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12165 | +instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12135 | 12166 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Enum.Bounded (f (g a)) => GHC.Internal.Enum.Bounded (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12136 | 12167 | instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| 12137 | 12168 | instance GHC.Internal.Enum.Bounded GHC.Internal.Int.Int16 -- Defined in ‘GHC.Internal.Int’
|
| ... | ... | @@ -12180,8 +12211,6 @@ instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CULong -- Define |
| 12180 | 12211 | instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12181 | 12212 | instance GHC.Internal.Enum.Bounded GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12182 | 12213 | instance GHC.Internal.Enum.Bounded GHC.Internal.ByteOrder.ByteOrder -- Defined in ‘GHC.Internal.ByteOrder’
|
| 12183 | -instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12184 | -instance GHC.Internal.Enum.Bounded GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12185 | 12214 | instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.Associativity -- Defined in ‘GHC.Internal.Generics’
|
| 12186 | 12215 | instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.DecidedStrictness -- Defined in ‘GHC.Internal.Generics’
|
| 12187 | 12216 | instance GHC.Internal.Enum.Bounded GHC.Internal.Generics.SourceStrictness -- Defined in ‘GHC.Internal.Generics’
|
| ... | ... | @@ -12207,6 +12236,8 @@ instance GHC.Internal.Enum.Enum GHC.Internal.Unicode.GeneralCategory -- Defined |
| 12207 | 12236 | instance forall k (a :: k) (b :: k). (a ~ b) => GHC.Internal.Enum.Enum (a GHC.Internal.Data.Type.Equality.:~: b) -- Defined in ‘GHC.Internal.Data.Type.Equality’
|
| 12208 | 12237 | instance forall k1 k2 (a :: k1) (b :: k2). (a ~~ b) => GHC.Internal.Enum.Enum (a GHC.Internal.Data.Type.Equality.:~~: b) -- Defined in ‘GHC.Internal.Data.Type.Equality’
|
| 12209 | 12238 | instance forall k (s :: k). GHC.Internal.Enum.Enum (GHC.Internal.Data.Proxy.Proxy s) -- Defined in ‘GHC.Internal.Data.Proxy’
|
| 12239 | +instance GHC.Internal.Enum.Enum GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12240 | +instance GHC.Internal.Enum.Enum GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12210 | 12241 | instance [safe] forall k (a :: k). GHC.Internal.Enum.Enum (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| 12211 | 12242 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Enum.Enum (f (g a)) => GHC.Internal.Enum.Enum (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12212 | 12243 | instance forall a. GHC.Internal.Enum.Enum a => GHC.Internal.Enum.Enum (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| ... | ... | @@ -12258,8 +12289,6 @@ instance GHC.Internal.Enum.Enum GHC.Internal.Foreign.C.Types.CUShort -- Defined |
| 12258 | 12289 | instance GHC.Internal.Enum.Enum GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12259 | 12290 | instance GHC.Internal.Enum.Enum GHC.Internal.ByteOrder.ByteOrder -- Defined in ‘GHC.Internal.ByteOrder’
|
| 12260 | 12291 | instance GHC.Internal.Enum.Enum GHC.Internal.Event.Windows.ConsoleEvent.ConsoleEvent -- Defined in ‘GHC.Internal.Event.Windows.ConsoleEvent’
|
| 12261 | -instance GHC.Internal.Enum.Enum GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12262 | -instance GHC.Internal.Enum.Enum GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12263 | 12292 | instance GHC.Internal.Enum.Enum GHC.Internal.Generics.Associativity -- Defined in ‘GHC.Internal.Generics’
|
| 12264 | 12293 | instance GHC.Internal.Enum.Enum GHC.Internal.Generics.DecidedStrictness -- Defined in ‘GHC.Internal.Generics’
|
| 12265 | 12294 | instance GHC.Internal.Enum.Enum GHC.Internal.Generics.SourceStrictness -- Defined in ‘GHC.Internal.Generics’
|
| ... | ... | @@ -12302,22 +12331,22 @@ instance [safe] GHC.Internal.Exception.Type.Exception ghc-internal-10.100.0:GHC. |
| 12302 | 12331 | instance [safe] GHC.Internal.Exception.Type.Exception System.Timeout.Timeout -- Defined in ‘System.Timeout’
|
| 12303 | 12332 | instance forall k a (b :: k). GHC.Internal.Float.Floating a => GHC.Internal.Float.Floating (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12304 | 12333 | instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Float.Floating (Data.Complex.Complex a) -- Defined in ‘Data.Complex’
|
| 12334 | +instance GHC.Internal.Float.Floating GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12335 | +instance GHC.Internal.Float.Floating GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12305 | 12336 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Float.Floating (f (g a)) => GHC.Internal.Float.Floating (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12306 | 12337 | instance forall a b. GHC.Internal.Float.Floating a => GHC.Internal.Float.Floating (Data.Functor.Contravariant.Op a b) -- Defined in ‘Data.Functor.Contravariant’
|
| 12307 | 12338 | instance forall a. GHC.Internal.Float.Floating a => GHC.Internal.Float.Floating (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| 12308 | 12339 | instance forall a. GHC.Internal.Float.Floating a => GHC.Internal.Float.Floating (GHC.Internal.Data.Ord.Down a) -- Defined in ‘GHC.Internal.Data.Ord’
|
| 12309 | 12340 | instance GHC.Internal.Float.Floating GHC.Internal.Foreign.C.Types.CDouble -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12310 | 12341 | instance GHC.Internal.Float.Floating GHC.Internal.Foreign.C.Types.CFloat -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12311 | -instance GHC.Internal.Float.Floating GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12312 | -instance GHC.Internal.Float.Floating GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12313 | 12342 | instance forall k a (b :: k). GHC.Internal.Float.RealFloat a => GHC.Internal.Float.RealFloat (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12343 | +instance GHC.Internal.Float.RealFloat GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12344 | +instance GHC.Internal.Float.RealFloat GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12314 | 12345 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Float.RealFloat (f (g a)) => GHC.Internal.Float.RealFloat (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12315 | 12346 | instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Float.RealFloat (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| 12316 | 12347 | instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Float.RealFloat (GHC.Internal.Data.Ord.Down a) -- Defined in ‘GHC.Internal.Data.Ord’
|
| 12317 | 12348 | instance GHC.Internal.Float.RealFloat GHC.Internal.Foreign.C.Types.CDouble -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12318 | 12349 | instance GHC.Internal.Float.RealFloat GHC.Internal.Foreign.C.Types.CFloat -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12319 | -instance GHC.Internal.Float.RealFloat GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12320 | -instance GHC.Internal.Float.RealFloat GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12321 | 12350 | instance forall k a (b :: k). GHC.Internal.Foreign.Storable.Storable a => GHC.Internal.Foreign.Storable.Storable (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12322 | 12351 | instance forall a. GHC.Internal.Foreign.Storable.Storable a => GHC.Internal.Foreign.Storable.Storable (Data.Complex.Complex a) -- Defined in ‘Data.Complex’
|
| 12323 | 12352 | instance forall a. GHC.Internal.Foreign.Storable.Storable a => GHC.Internal.Foreign.Storable.Storable (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| ... | ... | @@ -12644,6 +12673,8 @@ instance GHC.Internal.Ix.Ix GHC.Internal.IO.Device.SeekMode -- Defined in ‘GHC |
| 12644 | 12673 | instance GHC.Internal.Ix.Ix GHC.Internal.IO.IOMode.IOMode -- Defined in ‘GHC.Internal.IO.IOMode’
|
| 12645 | 12674 | instance forall k a (b :: k). GHC.Internal.Num.Num a => GHC.Internal.Num.Num (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12646 | 12675 | instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Num.Num (Data.Complex.Complex a) -- Defined in ‘Data.Complex’
|
| 12676 | +instance GHC.Internal.Num.Num GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12677 | +instance GHC.Internal.Num.Num GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12647 | 12678 | instance [safe] forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Num.Num (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| 12648 | 12679 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Num.Num (f (g a)) => GHC.Internal.Num.Num (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12649 | 12680 | instance forall a b. GHC.Internal.Num.Num a => GHC.Internal.Num.Num (Data.Functor.Contravariant.Op a b) -- Defined in ‘Data.Functor.Contravariant’
|
| ... | ... | @@ -12692,8 +12723,6 @@ instance GHC.Internal.Num.Num GHC.Internal.Foreign.C.Types.CULong -- Defined in |
| 12692 | 12723 | instance GHC.Internal.Num.Num GHC.Internal.Foreign.C.Types.CUSeconds -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12693 | 12724 | instance GHC.Internal.Num.Num GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12694 | 12725 | instance GHC.Internal.Num.Num GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12695 | -instance GHC.Internal.Num.Num GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12696 | -instance GHC.Internal.Num.Num GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12697 | 12726 | instance GHC.Internal.Num.Num GHC.Internal.Types.Int -- Defined in ‘GHC.Internal.Num’
|
| 12698 | 12727 | instance GHC.Internal.Num.Num GHC.Internal.Bignum.Integer.Integer -- Defined in ‘GHC.Internal.Num’
|
| 12699 | 12728 | instance GHC.Internal.Num.Num GHC.Internal.Bignum.Natural.Natural -- Defined in ‘GHC.Internal.Num’
|
| ... | ... | @@ -12830,6 +12859,8 @@ instance GHC.Internal.Read.Read GHC.Internal.IO.Handle.Types.NewlineMode -- Defi |
| 12830 | 12859 | instance GHC.Internal.Read.Read GHC.Internal.IO.Device.SeekMode -- Defined in ‘System.IO’
|
| 12831 | 12860 | instance forall k a (b :: k). GHC.Internal.Real.Fractional a => GHC.Internal.Real.Fractional (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12832 | 12861 | instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Real.Fractional (Data.Complex.Complex a) -- Defined in ‘Data.Complex’
|
| 12862 | +instance GHC.Internal.Real.Fractional GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12863 | +instance GHC.Internal.Real.Fractional GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12833 | 12864 | instance [safe] forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Real.Fractional (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| 12834 | 12865 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Real.Fractional (f (g a)) => GHC.Internal.Real.Fractional (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12835 | 12866 | instance forall a b. GHC.Internal.Real.Fractional a => GHC.Internal.Real.Fractional (Data.Functor.Contravariant.Op a b) -- Defined in ‘Data.Functor.Contravariant’
|
| ... | ... | @@ -12838,8 +12869,6 @@ instance forall a. GHC.Internal.Real.Fractional a => GHC.Internal.Real.Fractiona |
| 12838 | 12869 | instance forall a. GHC.Internal.Real.Integral a => GHC.Internal.Real.Fractional (GHC.Internal.Real.Ratio a) -- Defined in ‘GHC.Internal.Real’
|
| 12839 | 12870 | instance GHC.Internal.Real.Fractional GHC.Internal.Foreign.C.Types.CDouble -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12840 | 12871 | instance GHC.Internal.Real.Fractional GHC.Internal.Foreign.C.Types.CFloat -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12841 | -instance GHC.Internal.Real.Fractional GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12842 | -instance GHC.Internal.Real.Fractional GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12843 | 12872 | instance forall k a (b :: k). GHC.Internal.Real.Integral a => GHC.Internal.Real.Integral (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12844 | 12873 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Real.Integral (f (g a)) => GHC.Internal.Real.Integral (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12845 | 12874 | instance forall a. GHC.Internal.Real.Integral a => GHC.Internal.Real.Integral (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| ... | ... | @@ -12878,6 +12907,8 @@ instance GHC.Internal.Real.Integral GHC.Internal.Foreign.C.Types.CULong -- Defin |
| 12878 | 12907 | instance GHC.Internal.Real.Integral GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12879 | 12908 | instance GHC.Internal.Real.Integral GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12880 | 12909 | instance forall k a (b :: k). GHC.Internal.Real.Real a => GHC.Internal.Real.Real (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12910 | +instance GHC.Internal.Real.Real GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12911 | +instance GHC.Internal.Real.Real GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12881 | 12912 | instance [safe] forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Real.Real (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| 12882 | 12913 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Real.Real (f (g a)) => GHC.Internal.Real.Real (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12883 | 12914 | instance forall a. GHC.Internal.Real.Real a => GHC.Internal.Real.Real (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| ... | ... | @@ -12923,9 +12954,9 @@ instance GHC.Internal.Real.Real GHC.Internal.Foreign.C.Types.CULong -- Defined i |
| 12923 | 12954 | instance GHC.Internal.Real.Real GHC.Internal.Foreign.C.Types.CUSeconds -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12924 | 12955 | instance GHC.Internal.Real.Real GHC.Internal.Foreign.C.Types.CUShort -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12925 | 12956 | instance GHC.Internal.Real.Real GHC.Internal.Foreign.C.Types.CWchar -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12926 | -instance GHC.Internal.Real.Real GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12927 | -instance GHC.Internal.Real.Real GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12928 | 12957 | instance forall k a (b :: k). GHC.Internal.Real.RealFrac a => GHC.Internal.Real.RealFrac (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12958 | +instance GHC.Internal.Real.RealFrac GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12959 | +instance GHC.Internal.Real.RealFrac GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12929 | 12960 | instance [safe] forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Real.RealFrac (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| 12930 | 12961 | instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Real.RealFrac (f (g a)) => GHC.Internal.Real.RealFrac (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
|
| 12931 | 12962 | instance forall a. GHC.Internal.Real.RealFrac a => GHC.Internal.Real.RealFrac (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Functor.Identity’
|
| ... | ... | @@ -12933,8 +12964,6 @@ instance forall a. GHC.Internal.Real.RealFrac a => GHC.Internal.Real.RealFrac (G |
| 12933 | 12964 | instance forall a. GHC.Internal.Real.Integral a => GHC.Internal.Real.RealFrac (GHC.Internal.Real.Ratio a) -- Defined in ‘GHC.Internal.Real’
|
| 12934 | 12965 | instance GHC.Internal.Real.RealFrac GHC.Internal.Foreign.C.Types.CDouble -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12935 | 12966 | instance GHC.Internal.Real.RealFrac GHC.Internal.Foreign.C.Types.CFloat -- Defined in ‘GHC.Internal.Foreign.C.Types’
|
| 12936 | -instance GHC.Internal.Real.RealFrac GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 12937 | -instance GHC.Internal.Real.RealFrac GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 12938 | 12967 | instance forall k a (b :: k). GHC.Internal.Show.Show a => GHC.Internal.Show.Show (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
|
| 12939 | 12968 | instance forall a. GHC.Internal.Show.Show a => GHC.Internal.Show.Show (GHC.Internal.Functor.ZipList.ZipList a) -- Defined in ‘GHC.Internal.Functor.ZipList’
|
| 12940 | 12969 | instance GHC.Internal.Show.Show GHC.Internal.Conc.Sync.BlockReason -- Defined in ‘GHC.Internal.Conc.Sync’
|
| ... | ... | @@ -13025,6 +13054,8 @@ instance GHC.Internal.Show.Show GHC.Internal.Data.Data.Fixity -- Defined in ‘G |
| 13025 | 13054 | instance forall k (s :: k). GHC.Internal.Show.Show (GHC.Internal.Data.Proxy.Proxy s) -- Defined in ‘GHC.Internal.Data.Proxy’
|
| 13026 | 13055 | instance GHC.Internal.Show.Show ghc-internal-10.100.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep -- Defined in ‘ghc-internal-10.100.0:GHC.Internal.Data.Typeable.Internal’
|
| 13027 | 13056 | instance forall k (a :: k). GHC.Internal.Show.Show (ghc-internal-10.100.0:GHC.Internal.Data.Typeable.Internal.TypeRep a) -- Defined in ‘ghc-internal-10.100.0:GHC.Internal.Data.Typeable.Internal’
|
| 13057 | +instance GHC.Internal.Show.Show GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 13058 | +instance GHC.Internal.Show.Show GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 13028 | 13059 | instance GHC.Internal.Show.Show GHC.Internal.Data.Dynamic.Dynamic -- Defined in ‘GHC.Internal.Data.Dynamic’
|
| 13029 | 13060 | instance forall a b. (GHC.Internal.Show.Show a, GHC.Internal.Show.Show b) => GHC.Internal.Show.Show (GHC.Internal.Data.Either.Either a b) -- Defined in ‘GHC.Internal.Data.Either’
|
| 13030 | 13061 | instance [safe] forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Show.Show (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
|
| ... | ... | @@ -13100,8 +13131,6 @@ instance forall a. GHC.Internal.Show.Show a => GHC.Internal.Show.Show (GHC.Inter |
| 13100 | 13131 | instance GHC.Internal.Show.Show GHC.Internal.Event.Windows.HandleKey -- Defined in ‘GHC.Internal.Event.Windows’
|
| 13101 | 13132 | instance GHC.Internal.Show.Show GHC.Internal.Event.Windows.FFI.IOCP -- Defined in ‘GHC.Internal.Event.Windows.FFI’
|
| 13102 | 13133 | instance GHC.Internal.Show.Show GHC.Internal.Fingerprint.Type.Fingerprint -- Defined in ‘GHC.Internal.Fingerprint.Type’
|
| 13103 | -instance GHC.Internal.Show.Show GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
|
|
| 13104 | -instance GHC.Internal.Show.Show GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
|
|
| 13105 | 13134 | instance forall k (f :: k -> *) (g :: k -> *) (p :: k). (GHC.Internal.Show.Show (f p), GHC.Internal.Show.Show (g p)) => GHC.Internal.Show.Show ((GHC.Internal.Generics.:*:) f g p) -- Defined in ‘GHC.Internal.Generics’
|
| 13106 | 13135 | instance forall k (f :: k -> *) (g :: k -> *) (p :: k). (GHC.Internal.Show.Show (f p), GHC.Internal.Show.Show (g p)) => GHC.Internal.Show.Show ((GHC.Internal.Generics.:+:) f g p) -- Defined in ‘GHC.Internal.Generics’
|
| 13107 | 13136 | instance forall k2 k1 (f :: k2 -> *) (g :: k1 -> k2) (p :: k1). GHC.Internal.Show.Show (f (g p)) => GHC.Internal.Show.Show ((GHC.Internal.Generics.:.:) f g p) -- Defined in ‘GHC.Internal.Generics’
|
| ... | ... | @@ -337,7 +337,7 @@ |
| 337 | 337 | ></span
|
| 338 | 338 | > <a href="#" title="Hash"
|
| 339 | 339 | >Hash</a
|
| 340 | - > <a href="#" title="Prelude"
|
|
| 340 | + > <a href="#" title="Data.Float"
|
|
| 341 | 341 | >Float</a
|
| 342 | 342 | ></span
|
| 343 | 343 | > <a href="#" class="selflink"
|
| ... | ... | @@ -361,7 +361,7 @@ |
| 361 | 361 | ><p class="src"
|
| 362 | 362 | ><a href="#"
|
| 363 | 363 | >hash</a
|
| 364 | - > :: <a href="#" title="Prelude"
|
|
| 364 | + > :: <a href="#" title="Data.Float"
|
|
| 365 | 365 | >Float</a
|
| 366 | 366 | > -> <a href="#" title="Data.Int"
|
| 367 | 367 | >Int</a
|
| ... | ... | @@ -181,7 +181,7 @@ |
| 181 | 181 | >Int</a
|
| 182 | 182 | > (<a href="#" title="Data.Maybe"
|
| 183 | 183 | >Maybe</a
|
| 184 | - > <a href="#" title="Prelude"
|
|
| 184 | + > <a href="#" title="Data.Float"
|
|
| 185 | 185 | >Float</a
|
| 186 | 186 | >)</li
|
| 187 | 187 | ><li
|
| ... | ... | @@ -193,7 +193,7 @@ |
| 193 | 193 | >T</a
|
| 194 | 194 | > <a href="#" title="Data.Int"
|
| 195 | 195 | >Int</a
|
| 196 | - > <a href="#" title="Prelude"
|
|
| 196 | + > <a href="#" title="Data.Float"
|
|
| 197 | 197 | >Float</a
|
| 198 | 198 | >)</li
|
| 199 | 199 | ></ul
|
| ... | ... | @@ -433,9 +433,9 @@ |
| 433 | 433 | >Bool</a
|
| 434 | 434 | > -> <a href="#" title="Test"
|
| 435 | 435 | >T4</a
|
| 436 | - > <a href="#" title="Prelude"
|
|
| 436 | + > <a href="#" title="Data.Float"
|
|
| 437 | 437 | >Float</a
|
| 438 | - > <a href="#" title="Prelude"
|
|
| 438 | + > <a href="#" title="Data.Float"
|
|
| 439 | 439 | >Float</a
|
| 440 | 440 | > -> <a href="#" title="Test"
|
| 441 | 441 | >T5</a
|
| ... | ... | @@ -655,9 +655,9 @@ |
| 655 | 655 | >Bool</a
|
| 656 | 656 | > -> <a href="#" title="Test"
|
| 657 | 657 | >T4</a
|
| 658 | - > <a href="#" title="Prelude"
|
|
| 658 | + > <a href="#" title="Data.Float"
|
|
| 659 | 659 | >Float</a
|
| 660 | - > <a href="#" title="Prelude"
|
|
| 660 | + > <a href="#" title="Data.Float"
|
|
| 661 | 661 | >Float</a
|
| 662 | 662 | >) -> <a href="#" title="Test"
|
| 663 | 663 | >T5</a
|
| ... | ... | @@ -671,7 +671,7 @@ |
| 671 | 671 | >Int</a
|
| 672 | 672 | >, <a href="#" title="Data.Int"
|
| 673 | 673 | >Int</a
|
| 674 | - >, <a href="#" title="Prelude"
|
|
| 674 | + >, <a href="#" title="Data.Float"
|
|
| 675 | 675 | >Float</a
|
| 676 | 676 | >) -> <a href="#" title="Data.Int"
|
| 677 | 677 | >Int</a
|
| ... | ... | @@ -691,11 +691,11 @@ |
| 691 | 691 | ><li class="src short"
|
| 692 | 692 | ><a href="#"
|
| 693 | 693 | >o</a
|
| 694 | - > :: <a href="#" title="Prelude"
|
|
| 694 | + > :: <a href="#" title="Data.Float"
|
|
| 695 | 695 | >Float</a
|
| 696 | 696 | > -> <a href="#" title="System.IO"
|
| 697 | 697 | >IO</a
|
| 698 | - > <a href="#" title="Prelude"
|
|
| 698 | + > <a href="#" title="Data.Float"
|
|
| 699 | 699 | >Float</a
|
| 700 | 700 | ></li
|
| 701 | 701 | ><li class="src short"
|
| ... | ... | @@ -754,7 +754,7 @@ |
| 754 | 754 | >Int</a
|
| 755 | 755 | > (<a href="#" title="Data.Maybe"
|
| 756 | 756 | >Maybe</a
|
| 757 | - > <a href="#" title="Prelude"
|
|
| 757 | + > <a href="#" title="Data.Float"
|
|
| 758 | 758 | >Float</a
|
| 759 | 759 | >)</td
|
| 760 | 760 | ><td class="doc"
|
| ... | ... | @@ -776,7 +776,7 @@ |
| 776 | 776 | >T</a
|
| 777 | 777 | > <a href="#" title="Data.Int"
|
| 778 | 778 | >Int</a
|
| 779 | - > <a href="#" title="Prelude"
|
|
| 779 | + > <a href="#" title="Data.Float"
|
|
| 780 | 780 | >Float</a
|
| 781 | 781 | >)</td
|
| 782 | 782 | ><td class="doc"
|
| ... | ... | @@ -1456,9 +1456,9 @@ |
| 1456 | 1456 | >Bool</a
|
| 1457 | 1457 | > -> <a href="#" title="Test"
|
| 1458 | 1458 | >T4</a
|
| 1459 | - > <a href="#" title="Prelude"
|
|
| 1459 | + > <a href="#" title="Data.Float"
|
|
| 1460 | 1460 | >Float</a
|
| 1461 | - > <a href="#" title="Prelude"
|
|
| 1461 | + > <a href="#" title="Data.Float"
|
|
| 1462 | 1462 | >Float</a
|
| 1463 | 1463 | > -> <a href="#" title="Test"
|
| 1464 | 1464 | >T5</a
|
| ... | ... | @@ -1750,7 +1750,7 @@ |
| 1750 | 1750 | ></span
|
| 1751 | 1751 | > <a href="#" title="Test"
|
| 1752 | 1752 | >D</a
|
| 1753 | - > <a href="#" title="Prelude"
|
|
| 1753 | + > <a href="#" title="Data.Float"
|
|
| 1754 | 1754 | >Float</a
|
| 1755 | 1755 | ></span
|
| 1756 | 1756 | > <a href="#" class="selflink"
|
| ... | ... | @@ -1776,7 +1776,7 @@ |
| 1776 | 1776 | >d</a
|
| 1777 | 1777 | > :: <a href="#" title="Test"
|
| 1778 | 1778 | >T</a
|
| 1779 | - > <a href="#" title="Prelude"
|
|
| 1779 | + > <a href="#" title="Data.Float"
|
|
| 1780 | 1780 | >Float</a
|
| 1781 | 1781 | > b <a href="#" class="selflink"
|
| 1782 | 1782 | >#</a
|
| ... | ... | @@ -1784,9 +1784,9 @@ |
| 1784 | 1784 | ><p class="src"
|
| 1785 | 1785 | ><a href="#"
|
| 1786 | 1786 | >e</a
|
| 1787 | - > :: (<a href="#" title="Prelude"
|
|
| 1787 | + > :: (<a href="#" title="Data.Float"
|
|
| 1788 | 1788 | >Float</a
|
| 1789 | - >, <a href="#" title="Prelude"
|
|
| 1789 | + >, <a href="#" title="Data.Float"
|
|
| 1790 | 1790 | >Float</a
|
| 1791 | 1791 | >) <a href="#" class="selflink"
|
| 1792 | 1792 | >#</a
|
| ... | ... | @@ -2241,9 +2241,9 @@ is at the beginning of the line).</pre |
| 2241 | 2241 | >Bool</a
|
| 2242 | 2242 | > -> <a href="#" title="Test"
|
| 2243 | 2243 | >T4</a
|
| 2244 | - > <a href="#" title="Prelude"
|
|
| 2244 | + > <a href="#" title="Data.Float"
|
|
| 2245 | 2245 | >Float</a
|
| 2246 | - > <a href="#" title="Prelude"
|
|
| 2246 | + > <a href="#" title="Data.Float"
|
|
| 2247 | 2247 | >Float</a
|
| 2248 | 2248 | >)</td
|
| 2249 | 2249 | ><td class="doc"
|
| ... | ... | @@ -2299,7 +2299,7 @@ is at the beginning of the line).</pre |
| 2299 | 2299 | >Int</a
|
| 2300 | 2300 | >, <a href="#" title="Data.Int"
|
| 2301 | 2301 | >Int</a
|
| 2302 | - >, <a href="#" title="Prelude"
|
|
| 2302 | + >, <a href="#" title="Data.Float"
|
|
| 2303 | 2303 | >Float</a
|
| 2304 | 2304 | >)</td
|
| 2305 | 2305 | ><td class="doc"
|
| ... | ... | @@ -2385,7 +2385,7 @@ is at the beginning of the line).</pre |
| 2385 | 2385 | ><table
|
| 2386 | 2386 | ><tr
|
| 2387 | 2387 | ><td class="src"
|
| 2388 | - >:: <a href="#" title="Prelude"
|
|
| 2388 | + >:: <a href="#" title="Data.Float"
|
|
| 2389 | 2389 | >Float</a
|
| 2390 | 2390 | ></td
|
| 2391 | 2391 | ><td class="doc"
|
| ... | ... | @@ -2397,7 +2397,7 @@ is at the beginning of the line).</pre |
| 2397 | 2397 | ><td class="src"
|
| 2398 | 2398 | >-> <a href="#" title="System.IO"
|
| 2399 | 2399 | >IO</a
|
| 2400 | - > <a href="#" title="Prelude"
|
|
| 2400 | + > <a href="#" title="Data.Float"
|
|
| 2401 | 2401 | >Float</a
|
| 2402 | 2402 | ></td
|
| 2403 | 2403 | ><td class="doc"
|
| ... | ... | @@ -282,7 +282,7 @@ |
| 282 | 282 | >newtype</span
|
| 283 | 283 | > <a href="#" title="TypeFamilies3"
|
| 284 | 284 | >Baz</a
|
| 285 | - > <a href="#" title="Prelude"
|
|
| 285 | + > <a href="#" title="Data.Double"
|
|
| 286 | 286 | >Double</a
|
| 287 | 287 | ></span
|
| 288 | 288 | > <a href="#" class="selflink"
|
| ... | ... | @@ -305,11 +305,11 @@ |
| 305 | 305 | >newtype</span
|
| 306 | 306 | > <a href="#" title="TypeFamilies3"
|
| 307 | 307 | >Baz</a
|
| 308 | - > <a href="#" title="Prelude"
|
|
| 308 | + > <a href="#" title="Data.Double"
|
|
| 309 | 309 | >Double</a
|
| 310 | 310 | > = <a id="v:Baz3" class="def"
|
| 311 | 311 | >Baz3</a
|
| 312 | - > <a href="#" title="Prelude"
|
|
| 312 | + > <a href="#" title="Data.Float"
|
|
| 313 | 313 | >Float</a
|
| 314 | 314 | ></div
|
| 315 | 315 | ></details
|