Commit f817d816 authored by Sylvain Henry's avatar Sylvain Henry Committed by Ben Gamari

Update testsuite

* support detection of slow ghc-bignum backend (to replace the detection
  of integer-simple use). There are still some test cases that the
  native backend doesn't handle efficiently enough.

* remove tests for GMP only functions that have been removed from
  ghc-bignum

* fix test results showing dependent packages (e.g. integer-gmp) or
  showing suggested instances

* fix test using Integer/Natural API or showing internal names
parent aa9e7b71
......@@ -253,6 +253,4 @@ test('T15349', [exit_code(1), expect_broken_for(15349, ['ghci'])], compile_and_r
test('T16111', exit_code(1), compile_and_run, [''])
test('T16943a', normal, compile_and_run, [''])
test('T16943b', normal, compile_and_run, [''])
# This frequently times out with slow bignum implementations
test('T17499', [when(have_slow_bignum(), skip), collect_stats('bytes allocated',5)],
compile_and_run, ['-O -w'])
test('T17499', [collect_stats('bytes allocated',5)], compile_and_run, ['-O -w'])
......@@ -139,6 +139,9 @@ class TestConfig:
# Is readelf available?
self.have_readelf = False
# Do we use a fast backend for bignum (e.g. GMP)
self.have_fast_bignum = True
# Are we testing an in-tree compiler?
self.in_tree_compiler = True
......
......@@ -563,11 +563,11 @@ def have_gdb( ) -> bool:
def have_readelf( ) -> bool:
return config.have_readelf
def integer_gmp( ) -> bool:
return have_library("integer-gmp")
def have_fast_bignum( ) -> bool:
return config.have_fast_bignum
def integer_simple( ) -> bool:
return have_library("integer-simple")
def have_slow_bignum( ) -> bool:
return not(have_fast_bignum())
def llvm_build ( ) -> bool:
return config.ghc_built_by_llvm
......@@ -2143,11 +2143,11 @@ def normalise_errmsg(s: str) -> str:
# collisions, so we need to normalise that to just "ghc"
s = re.sub('ghc-stage[123]', 'ghc', s)
# Error messages sometimes contain integer implementation package
s = re.sub('integer-(gmp|simple)-[0-9.]+', 'integer-<IMPL>-<VERSION>', s)
# Error messages sometimes contain ghc-bignum implementation package
s = re.sub('ghc-bignum-[0-9.]+', 'ghc-bignum-<VERSION>', s)
# Error messages sometimes contain this blurb which can vary
# spuriously depending upon build configuration (e.g. based on integer
# spuriously depending upon build configuration (e.g. based on bignum
# backend)
s = re.sub('...plus ([a-z]+|[0-9]+) instances involving out-of-scope types',
'...plus N instances involving out-of-scope types', s)
......
......@@ -100,6 +100,10 @@ HAVE_PROFILING := $(shell if [ -f $(subst \,/,$(GHC_PRIM_LIBDIR))/GHC/PrimopWrap
HAVE_GDB := $(shell if gdb --version > /dev/null 2> /dev/null; then echo YES; else echo NO; fi)
HAVE_READELF := $(shell if readelf --version > /dev/null 2> /dev/null; then echo YES; else echo NO; fi)
# we need a better way to find which backend is selected and if --check flag is
# used
BIGNUM_GMP := $(shell "$(GHC_PKG)" field ghc-bignum exposed-modules | grep GMP)
ifeq "$(HAVE_VANILLA)" "YES"
RUNTEST_OPTS += -e config.have_vanilla=True
else
......@@ -156,6 +160,12 @@ else
RUNTEST_OPTS += -e config.have_readelf=False
endif
ifeq "$(BIGNUM_GMP)" ""
RUNTEST_OPTS += -e config.have_fast_bignum=False
else
RUNTEST_OPTS += -e config.have_fast_bignum=True
endif
ifeq "$(GhcDynamicByDefault)" "YES"
RUNTEST_OPTS += -e config.ghc_dynamic_by_default=True
CABAL_MINIMAL_BUILD = --enable-shared --disable-library-vanilla
......
......@@ -27,11 +27,10 @@ T13242a.hs:13:13: error:
Probable fix: use a type annotation to specify what ‘a0’ should be.
These potential instances exist:
instance Eq Ordering -- Defined in ‘GHC.Classes’
instance Eq Integer
-- Defined in ‘integer-gmp-1.0.3.0:GHC.Integer.Type’
instance Eq Integer -- Defined in ‘GHC.Num.Integer’
instance Eq () -- Defined in ‘GHC.Classes’
...plus 21 others
...plus six instances involving out-of-scope types
...plus five instances involving out-of-scope types
(use -fprint-potential-instances to see them all)
• In a stmt of a 'do' block: return (x == x)
In the expression:
......
......@@ -42,5 +42,4 @@ TYPE SIGNATURES
(Monad m, Num (m a)) =>
(m a -> m (m a)) -> p -> m a
Dependent modules: []
Dependent packages: [base-4.14.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.3.0]
Dependent packages: [base-4.14.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
test('ado001', normal, compile_and_run, [''])
test('ado002', normal, compile_fail, [''])
test('ado003', normal, compile_fail, [''])
test('ado004', normalise_version('base','ghc-prim','integer-gmp'), compile, [''])
test('ado004', normalise_version('base','ghc-prim','ghc-bignum'), compile, [''])
test('ado005', normal, compile_fail, [''])
test('ado006', normal, compile, [''])
test('ado007', normal, compile, [''])
......
......@@ -8,7 +8,8 @@ annfail10.hs:9:1: error:
Data.Data.Data (Either a b)
-- Defined in ‘Data.Data’
instance Data.Data.Data Ordering -- Defined in ‘Data.Data’
instance Data.Data.Data Integer -- Defined in ‘Data.Data’
instance Data.Data.Data a => Data.Data.Data (Maybe a)
-- Defined in ‘Data.Data’
...plus 15 others
...plus 47 instances involving out-of-scope types
(use -fprint-potential-instances to see them all)
......
......@@ -204,7 +204,7 @@ mkRFun :: Id -> [Id] -> CoreExpr -> CoreExpr -> CoreExpr
mkRFun v xs rhs body = mkRLet v (mkLams xs rhs) body
mkLit :: Integer -> CoreExpr
mkLit i = Lit (mkLitInteger i intTy)
mkLit i = mkUncheckedIntExpr i
-- Collects all let-bound IDs
allBoundIds :: CoreExpr -> VarSet
......
......@@ -11,5 +11,4 @@ COERCION AXIOMS
FAMILY INSTANCES
type instance F Int = Bool -- Defined at T14729.hs:10:15
Dependent modules: []
Dependent packages: [base-4.15.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.3.0]
Dependent packages: [base-4.15.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
......@@ -3,5 +3,4 @@ TYPE CONSTRUCTORS
forall {k1} k2 (k3 :: k2). Proxy k3 -> k1 -> k2 -> *
roles nominal nominal nominal phantom phantom phantom
Dependent modules: []
Dependent packages: [base-4.15.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.3.0]
Dependent packages: [base-4.15.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
......@@ -52,5 +52,4 @@ DATA CONSTRUCTORS
(d :: Proxy k5) (e :: Proxy k7).
f c -> T k8 a b f c d e
Dependent modules: []
Dependent packages: [base-4.15.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.3.0]
Dependent packages: [base-4.15.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
......@@ -5,8 +5,7 @@ TYPE SIGNATURES
(Applicative f, Num t, Num b) =>
(t -> f b) -> f b
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
[1 of 1] Compiling A ( A.hs, A.o )
TYPE SIGNATURES
test2 ::
......@@ -14,5 +13,4 @@ TYPE SIGNATURES
(Applicative f, Num t, Num b) =>
(t -> f b) -> f b
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
{"span": null,"doc": "TYPE SIGNATURES\n foo :: forall a. a -> a\nDependent modules: []\nDependent packages: [base-4.13.0.0, ghc-prim-0.6.1,\n integer-gmp-1.0.2.0]","severity": "SevOutput","reason": null}
{"span": null,"doc": "TYPE SIGNATURES\n foo :: forall a. a -> a\nDependent modules: []\nDependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]","severity": "SevOutput","reason": null}
......@@ -45,7 +45,7 @@ test('print033', normal, ghci_script, ['print033.script'])
test('print034', extra_files(['../GADT.hs', '../Test.hs']), ghci_script, ['print034.script'])
test('print035', extra_files(['../Unboxed.hs']), ghci_script, ['print035.script'])
test('print036', expect_broken(9046), ghci_script, ['print036.script'])
test('print037', when(llvm_build() and integer_gmp(),
test('print037', when(llvm_build(),
fragile_for(16205, ['ghci-ext']))
, ghci_script
, ['print037.script'])
......
......@@ -6,10 +6,10 @@
Relevant bindings include it :: a (bound at <interactive>:4:1)
These potential instances exist:
instance Show Ordering -- Defined in ‘GHC.Show’
instance Show Integer -- Defined in ‘GHC.Show’
instance Show a => Show (Maybe a) -- Defined in ‘GHC.Show’
instance Show Integer -- Defined in ‘GHC.Show’
...plus 22 others
...plus 18 instances involving out-of-scope types
...plus 12 instances involving out-of-scope types
(use -fprint-potential-instances to see them all)
• In a stmt of an interactive GHCi command: print it
......@@ -20,9 +20,9 @@
Relevant bindings include it :: a (bound at <interactive>:6:1)
These potential instances exist:
instance Show Ordering -- Defined in ‘GHC.Show’
instance Show Integer -- Defined in ‘GHC.Show’
instance Show a => Show (Maybe a) -- Defined in ‘GHC.Show’
instance Show Integer -- Defined in ‘GHC.Show’
...plus 22 others
...plus 18 instances involving out-of-scope types
...plus 12 instances involving out-of-scope types
(use -fprint-potential-instances to see them all)
• In a stmt of an interactive GHCi command: print it
......@@ -5,12 +5,9 @@ let f = Just (1.2::Float)
f
:p f
-- With @integer-gmp@, small integer literals get converted directly into
-- @S# 10#@. This optimization means that small integers are always already
-- With @ghc-bignum@, small integer literals get converted directly into
-- @IS 10#@. This optimization means that small integers are always already
-- evaluated in the output for @:p@.
--
-- Since we want this test to work on @integer-simple@ too, we explicitly
-- force the literal.
let ten = 10 :: Integer
:f ten
let i = Just ten
......
......@@ -7,8 +7,8 @@
These potential instances exist:
instance Show Ordering -- Defined in ‘GHC.Show’
instance Show TyCon -- Defined in ‘GHC.Show’
instance Show Integer -- Defined in ‘GHC.Show’
instance Show a => Show (List1 a) -- Defined at Test.hs:11:12
...plus 29 others
...plus 19 instances involving out-of-scope types
...plus 13 instances involving out-of-scope types
(use -fprint-potential-instances to see them all)
• In a stmt of an interactive GHCi command: print it
-- Test out printing of integers in GHCi
-- With @integer-gmp@, small integer literals get converted directly into
-- @S# i#@. This optimization means that small integers are always already
-- With @ghc-bignum@, small integer literals get converted directly into
-- @IS i#@. This optimization means that small integers are always already
-- evaluated in the output for @:p@.
--
-- Since we want this test to work on @integer-simple@ too, we explicitly
-- force the literals.
let smallNeg = -53 :: Integer
:f smallNeg
......
......@@ -3,5 +3,4 @@ TYPE CONSTRUCTORS
associated type family F{2} :: forall a. Maybe a -> *
roles nominal nominal
Dependent modules: []
Dependent packages: [base-4.15.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.3.0]
Dependent packages: [base-4.15.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
......@@ -9,5 +9,4 @@ FAMILY INSTANCES
data instance forall {k1} {k2} {j :: k1} {c :: k2}.
DF (Proxy c) -- Defined at T15852.hs:10:15
Dependent modules: []
Dependent packages: [base-4.15.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.3.0]
Dependent packages: [base-4.15.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
......@@ -20,5 +20,4 @@ CLASS INSTANCES
FAMILY INSTANCES
type instance Elem (ListColl a) = a -- Defined at T3017.hs:13:9
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
......@@ -8,8 +8,8 @@ T12522a.hs:23:26: error:
Probable fix: use a type annotation to specify what ‘a0’ should be.
These potential instances exist:
instance Show Ordering -- Defined in ‘GHC.Show’
instance Show Integer -- Defined in ‘GHC.Show’
instance Show a => Show (Maybe a) -- Defined in ‘GHC.Show’
instance Show Integer -- Defined in ‘GHC.Show’
...plus 22 others
...plus 12 instances involving out-of-scope types
(use -fprint-potential-instances to see them all)
......
......@@ -7,8 +7,9 @@ test('IntegerConversionRules', [], makefile_test, ['IntegerConversionRules'])
test('gcdInteger', normal, compile_and_run, [''])
# skip ghci as it doesn't support unboxed tuples
test('integerImportExport', [reqlib('integer-gmp'), omit_ways(['ghci'])], compile_and_run, [''])
test('integerGcdExt', [reqlib('integer-gmp'), omit_ways(['ghci'])], compile_and_run, [''])
test('integerImportExport', [omit_ways(['ghci'])], compile_and_run, [''])
test('integerPowMod', [reqlib('integer-gmp')], compile_and_run, [''])
test('integerGmpInternals', [reqlib('integer-gmp')], compile_and_run, [''])
# Disable GMP only tests
#test('integerGcdExt', [omit_ways(['ghci'])], compile_and_run, [''])
#test('integerPowMod', [], compile_and_run, [''])
#test('integerGmpInternals', [], compile_and_run, [''])
......@@ -4,11 +4,11 @@
module Q where
import GHC.Exts
import GHC.Integer
import GHC.Num.Integer
v :: Int
v = I# (integerToInt (smallInteger 3#))
v = I# (integerToInt# (IS 3#))
w :: Word
w = W# (integerToWord (wordToInteger 3##))
w = W# (integerToWord# (integerFromWord# 3##))
......@@ -4,12 +4,12 @@
module Main (main) where
import GHC.Base
import GHC.Integer
import GHC.Num.Integer
main :: IO ()
main = case i of
I# i# ->
print (gcd (smallInteger i#) (smallInteger i#))
print (gcd (IS i#) (IS i#))
{-# NOINLINE i #-}
i :: Int
......
......@@ -9,8 +9,8 @@ import Control.Monad
import GHC.Word
import GHC.Base
import GHC.Integer.GMP.Internals (Integer(S#,Jp#,Jn#))
import qualified GHC.Integer.GMP.Internals as I
import GHC.Num.Integer
import qualified GHC.Num.Integer as I
recipModInteger :: Integer -> Integer -> Integer
recipModInteger = I.recipModInteger
......
......@@ -10,20 +10,20 @@ import Unsafe.Coerce (unsafeCoerce#)
import GHC.Word
import GHC.Base
import GHC.Integer.GMP.Internals (Integer(S#,Jp#,Jn#))
import qualified GHC.Integer.GMP.Internals as I
import GHC.Num.Integer
import qualified GHC.Num.Integer as I
exportInteger :: Integer -> MutableByteArray# RealWorld -> Word# -> Int# -> IO Word
exportInteger = I.exportIntegerToMutableByteArray
exportInteger = I.integerToMutableByteArray
exportIntegerAddr :: Integer -> Addr# -> Int# -> IO Word
exportIntegerAddr = I.exportIntegerToAddr
exportIntegerAddr = I.integerToAddr
importInteger :: ByteArray# -> Word# -> Word# -> Int# -> Integer
importInteger = I.importIntegerFromByteArray
importInteger ba off sz = I.integerFromByteArray sz ba off
importIntegerAddr :: Addr# -> Word# -> Int# -> IO Integer
importIntegerAddr a l e = I.importIntegerFromAddr a l e
importIntegerAddr a l = I.integerFromAddr l a
-- helpers
data MBA = MBA { unMBA :: !(MutableByteArray# RealWorld) }
......@@ -57,8 +57,8 @@ freezeByteArray arr = IO $ \s -> case unsafeFreezeByteArray# arr s of (# s, arr
main :: IO ()
main = do
-- import/export primitives
print $ [ W# (I.sizeInBaseInteger x 2#) | x <- [b1024,b*e,b,e,m,x,y,-1,0,1] ]
print $ [ W# (I.sizeInBaseInteger x 256#) | x <- [b1024,b*e,b,e,m,x,y,-1,0,1] ]
print $ [ W# (I.integerSizeInBase# 2## x) | x <- [b1024,b*e,b,e,m,x,y,-1,0,1] ]
print $ [ W# (I.integerSizeInBase# 256## x) | x <- [b1024,b*e,b,e,m,x,y,-1,0,1] ]
BA ba <- do
MBA mba <- newByteArray 128##
......
[1024,462,231,231,133,123,125,1,1,1]
[128,58,29,29,17,16,16,1,1,1]
[1024,462,231,231,133,123,125,1,0,1]
[128,58,29,29,17,16,16,1,0,1]
0
0
23
......
......@@ -5,7 +5,7 @@ def f( name, opts ):
setTestOpts(f)
# test('T5486', reqlib('integer-gmp'), compile, [''])
# test('T5486', normal, compile, [''])
test('T5681', normal, compile, [''])
test('T6158', [reqlib('vector'), reqlib('primitive')], compile, ['-package vector -package primitive'])
test('T7571', cmm_src, compile, [''])
......
......@@ -4,7 +4,7 @@
module M where
import Numeric.Natural
import GHC.Natural
import GHC.Num.Natural
-- test Natural literals
one :: Natural
......@@ -15,7 +15,7 @@ plusOne n = n + 1
-- a built-in rule should convert this unfolding into a Natural literal in Core
ten :: Natural
ten = wordToNatural 10
ten = naturalFromWord 10
-- test basic constant folding for Natural
twoTimesTwo :: Natural
......
==================== Tidy Core ====================
Result size of Tidy Core
= {terms: 39, types: 19, coercions: 0, joins: 0/0}
= {terms: 40, types: 17, coercions: 0, joins: 0/0}
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
ten :: Natural
[GblId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
ten = 10
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
ten = GHC.Num.Natural.NS 10##
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
M.$trModule4 :: GHC.Prim.Addr#
......@@ -52,19 +52,19 @@ M.minusOne1 :: Natural
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 100 0}]
M.minusOne1 = 1
-- RHS size: {terms: 11, types: 6, coercions: 0, joins: 0/0}
-- RHS size: {terms: 11, types: 4, coercions: 0, joins: 0/0}
minusOne :: Natural
[GblId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
WorkFree=True, Expandable=False, Guidance=IF_ARGS [] 40 0}]
minusOne
= case M.minusOne1 of {
NatS# ds1 ->
= case M.minusOne1 of wild {
NS ds1 ->
case ds1 of {
__DEFAULT -> GHC.Natural.underflowError @Natural;
0## -> GHC.Natural.zero
__DEFAULT -> GHC.Num.$fNumNatural1;
0## -> wild
};
NatJ# ipv -> GHC.Natural.underflowError @Natural
NB ipv -> GHC.Num.$fNumNatural1
}
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
......@@ -78,12 +78,12 @@ twoTimesTwo = 4
plusOne :: Natural -> Natural
[GblId,
Arity=1,
Str=<S,U>,
Str=<S,1*U>,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
Tmpl= \ (n [Occ=Once] :: Natural) -> plusNatural n M.minusOne1}]
plusOne = \ (n :: Natural) -> plusNatural n M.minusOne1
Tmpl= \ (n [Occ=Once] :: Natural) -> naturalAdd n M.minusOne1}]
plusOne = \ (n :: Natural) -> naturalAdd n M.minusOne1
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
one :: Natural
......
test('T7116', normal, makefile_test, ['T7116'])
# These test Core output that depends upon integer-gmp
test('T14170', normal, makefile_test, ['T14170'])
test('T14465', reqlib("integer-gmp"), makefile_test, ['T14465'])
test('T14465', normal, makefile_test, ['T14465'])
test('T7895', normal, compile, [''])
test('T7881', normal, compile, [''])
# For T8542, the hpc way adds extra annotations that prevent
......
import Numeric
import GHC.Natural
import GHC.Num.Natural
main = do
-- test that GHC correctly compiles big Natural literals
......
......@@ -5,10 +5,10 @@ overloadedlistsfail01.hs:5:8: error:
Probable fix: use a type annotation to specify what ‘a0’ should be.
These potential instances exist:
instance Show Ordering -- Defined in ‘GHC.Show’
instance Show Integer -- Defined in ‘GHC.Show’
instance Show a => Show (Maybe a) -- Defined in ‘GHC.Show’
instance Show Integer -- Defined in ‘GHC.Show’
...plus 22 others
...plus 13 instances involving out-of-scope types
...plus 14 instances involving out-of-scope types
(use -fprint-potential-instances to see them all)
• In the expression: print [1]
In an equation for ‘main’: main = print [1]
......@@ -19,7 +19,7 @@ overloadedlistsfail01.hs:5:14: error:
Probable fix: use a type annotation to specify what ‘a0’ should be.
These potential instances exist:
instance GHC.Exts.IsList [a] -- Defined in ‘GHC.Exts’
...plus three instances involving out-of-scope types
...plus four instances involving out-of-scope types
(use -fprint-potential-instances to see them all)
• In the first argument of ‘print’, namely ‘[1]’
In the expression: print [1]
......
......@@ -5,5 +5,4 @@ TYPE CONSTRUCTORS
DATA CONSTRUCTORS
Foo :: forall x y z. x -> y -> z -> Foo x y z
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
addAndOr1 :: (Int, Bool) -> (Bool, Int) -> (Int, Bool)
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
addAndOr2 :: (Int, Bool) -> (Bool, Int) -> (Int, Bool)
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
addAndOr3 :: (Int, Bool) -> (Bool, Int) -> (Int, Bool)
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
addAndOr4 :: (Int, Bool) -> (Bool, Int) -> (Int, Bool)
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
addAndOr5 :: (Int, Bool) -> (Bool, Int) -> (Int, Bool)
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
addAndOr6 :: (Int, Bool) -> (Bool, Int) -> (Int, Bool)
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
bar :: Bool -> Bool
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
......@@ -15,5 +15,4 @@ DATA CONSTRUCTORS
FAMILY INSTANCES
data instance Sing _ -- Defined at DataFamilyInstanceLHS.hs:8:15
Dependent modules: []
Dependent packages: [base-4.14.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.3.0]
Dependent packages: [base-4.14.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
alpha :: Integer
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
bravo :: forall {w}. Num w => w
Dependent modules: []
Dependent packages: [base-4.14.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.3.0]
Dependent packages: [base-4.14.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
bravo :: forall {w}. Num w => w
Dependent modules: []
Dependent packages: [base-4.14.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.3.0]
Dependent packages: [base-4.14.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
barry :: forall {w}. w -> (Either String w, Either String w)
Dependent modules: []
Dependent packages: [base-4.14.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.3.0]
Dependent packages: [base-4.14.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
foo :: forall a. (a ~ Bool) => (a, Bool)
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
every :: forall {t}. (t -> Bool) -> [t] -> Bool
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
every :: forall {w}. (w -> Bool) -> [w] -> Bool
Dependent modules: []
Dependent packages: [base-4.14.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.3.0]
Dependent packages: [base-4.14.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
bar :: Bool -> Bool
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
TYPE SIGNATURES
bar :: Bool -> Bool
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]
......@@ -5,5 +5,4 @@ TYPE SIGNATURES
arbitCs4 :: forall a. (Eq a, Show a, Enum a) => a -> String
arbitCs5 :: forall a. (Eq a, Enum a, Show a) => a -> String
Dependent modules: []
Dependent packages: [base-4.13.0.0, ghc-prim-0.6.1,
integer-gmp-1.0.2.0]
Dependent packages: [base-4.13.0.0, ghc-bignum-1.0, ghc-prim-0.6.1]