diff options
Diffstat (limited to 'testsuite/tests')
24 files changed, 119 insertions, 308 deletions
diff --git a/testsuite/tests/ghci/scripts/T10248.script b/testsuite/tests/ghci/scripts/T10248.script deleted file mode 100644 index 6614044ad6..0000000000 --- a/testsuite/tests/ghci/scripts/T10248.script +++ /dev/null @@ -1,2 +0,0 @@ -:set -fdefer-type-errors -Just <$> _ diff --git a/testsuite/tests/ghci/scripts/T10248.stderr b/testsuite/tests/ghci/scripts/T10248.stderr deleted file mode 100644 index 1245b994fd..0000000000 --- a/testsuite/tests/ghci/scripts/T10248.stderr +++ /dev/null @@ -1,18 +0,0 @@ - -<interactive>:3:10: warning: - Found hole ‘_’ with type: IO () - In the second argument of ‘(<$>)’, namely ‘_’ - In the first argument of ‘ghciStepIO :: - IO a_alT -> IO a_alT’, namely - ‘Just <$> _’ - In a stmt of an interactive GHCi command: - it <- ghciStepIO :: IO a_alT -> IO a_alT (Just <$> _) -*** Exception: <interactive>:3:10: error: - Found hole ‘_’ with type: IO () - In the second argument of ‘(<$>)’, namely ‘_’ - In the first argument of ‘ghciStepIO :: - IO a_alT -> IO a_alT’, namely - ‘Just <$> _’ - In a stmt of an interactive GHCi command: - it <- ghciStepIO :: IO a_alT -> IO a_alT (Just <$> _) -(deferred type error) diff --git a/testsuite/tests/ghci/scripts/all.T b/testsuite/tests/ghci/scripts/all.T index 85ba5afe17..1582344063 100755 --- a/testsuite/tests/ghci/scripts/all.T +++ b/testsuite/tests/ghci/scripts/all.T @@ -216,4 +216,3 @@ test('T10408A', normal, run_command, ['$MAKE -s --no-print-directory T10408A']) test('T10408B', normal, run_command, ['$MAKE -s --no-print-directory T10408B']) -test('T10248', normal, ghci_script, ['T10248.script']) diff --git a/testsuite/tests/indexed-types/should_fail/NotRelaxedExamples.stderr b/testsuite/tests/indexed-types/should_fail/NotRelaxedExamples.stderr index 1594d199df..dd479b7664 100644 --- a/testsuite/tests/indexed-types/should_fail/NotRelaxedExamples.stderr +++ b/testsuite/tests/indexed-types/should_fail/NotRelaxedExamples.stderr @@ -1,17 +1,18 @@ -
-NotRelaxedExamples.hs:9:15: error:
- Illegal nested type family application ‘F1 (F1 Char)’
- (Use UndecidableInstances to permit this)
- In the type instance declaration for ‘F1’
-
-NotRelaxedExamples.hs:10:15: error:
- The type family application ‘F2 [x]’
- is no smaller than the instance head
- (Use UndecidableInstances to permit this)
- In the type instance declaration for ‘F2’
-
-NotRelaxedExamples.hs:11:15: error:
- The type family application ‘F3 [Char]’
- is no smaller than the instance head
- (Use UndecidableInstances to permit this)
- In the type instance declaration for ‘F3’
+ +NotRelaxedExamples.hs:9:15: + Nested type family application + in the type family application: F1 (F1 Char) + (Use UndecidableInstances to permit this) + In the type instance declaration for ‘F1’ + +NotRelaxedExamples.hs:10:15: + Application is no smaller than the instance head + in the type family application: F2 [x] + (Use UndecidableInstances to permit this) + In the type instance declaration for ‘F2’ + +NotRelaxedExamples.hs:11:15: + Application is no smaller than the instance head + in the type family application: F3 [Char] + (Use UndecidableInstances to permit this) + In the type instance declaration for ‘F3’ diff --git a/testsuite/tests/indexed-types/should_fail/TyFamUndec.stderr b/testsuite/tests/indexed-types/should_fail/TyFamUndec.stderr index bdc9c5fbac..15cd757181 100644 --- a/testsuite/tests/indexed-types/should_fail/TyFamUndec.stderr +++ b/testsuite/tests/indexed-types/should_fail/TyFamUndec.stderr @@ -1,17 +1,18 @@ -
-TyFamUndec.hs:6:15: error:
- Variable ‘b’ occurs more often
- in the type family application ‘T (b, b)’ than in the instance head
- (Use UndecidableInstances to permit this)
- In the type instance declaration for ‘T’
-
-TyFamUndec.hs:7:15: error:
- The type family application ‘T (a, Maybe b)’
- is no smaller than the instance head
- (Use UndecidableInstances to permit this)
- In the type instance declaration for ‘T’
-
-TyFamUndec.hs:8:15: error:
- Illegal nested type family application ‘T (a, T b)’
- (Use UndecidableInstances to permit this)
- In the type instance declaration for ‘T’
+ +TyFamUndec.hs:6:15: + Variable ‘b’ occurs more often than in the instance head + in the type family application: T (b, b) + (Use UndecidableInstances to permit this) + In the type instance declaration for ‘T’ + +TyFamUndec.hs:7:15: + Application is no smaller than the instance head + in the type family application: T (a, Maybe b) + (Use UndecidableInstances to permit this) + In the type instance declaration for ‘T’ + +TyFamUndec.hs:8:15: + Nested type family application + in the type family application: T (a, T b) + (Use UndecidableInstances to permit this) + In the type instance declaration for ‘T’ diff --git a/testsuite/tests/module/all.T b/testsuite/tests/module/all.T index d0b37aaa33..c4c2fffe57 100644 --- a/testsuite/tests/module/all.T +++ b/testsuite/tests/module/all.T @@ -116,7 +116,7 @@ test('mod85', normal, compile, ['']) test('mod86', normal, compile, ['']) test('mod87', normal, compile_fail, ['']) test('mod88', normal, compile_fail, ['']) -test('mod89', normal, compile, ['']) +test('mod89', normal, compile_fail, ['']) test('mod90', normal, compile_fail, ['']) test('mod91', normal, compile_fail, ['']) test('mod92', normal, compile, ['']) diff --git a/testsuite/tests/module/mod89.hs b/testsuite/tests/module/mod89.hs index 1e903a0125..2c48d65a16 100644 --- a/testsuite/tests/module/mod89.hs +++ b/testsuite/tests/module/mod89.hs @@ -1,5 +1,3 @@ -{-# OPTIONS_GHC -Wall #-} - -- !!! Sublist for non-class/tycon module M where import Prelude(map(..)) diff --git a/testsuite/tests/module/mod89.stderr b/testsuite/tests/module/mod89.stderr index b355f3050b..0f956536cb 100644 --- a/testsuite/tests/module/mod89.stderr +++ b/testsuite/tests/module/mod89.stderr @@ -1,10 +1,2 @@ -
-mod89.hs:5:1: warning:
- The import item ‘map(..)’ suggests that
- ‘map’ has (in-scope) constructors or class methods,
- but it has none
-
-mod89.hs:5:1: warning:
- The import of ‘Prelude’ is redundant
- except perhaps to import instances from ‘Prelude’
- To import instances alone, use: import Prelude()
+ +mod89.hs:3:16: Module ‘Prelude’ does not export ‘map(..)’ diff --git a/testsuite/tests/partial-sigs/should_compile/T10403.hs b/testsuite/tests/partial-sigs/should_compile/T10403.hs deleted file mode 100644 index a33646da5d..0000000000 --- a/testsuite/tests/partial-sigs/should_compile/T10403.hs +++ /dev/null @@ -1,19 +0,0 @@ -{-# LANGUAGE PartialTypeSignatures #-} -module T10403 where - -data I a = I a -instance Functor I where - fmap f (I a) = I (f a) - -newtype B t a = B a -instance Functor (B t) where - fmap f (B a) = B (f a) - -newtype H f = H (f ()) - -app :: H (B t) -app = h (H . I) (B ()) - -h :: _ => _ ---h :: Functor m => (a -> b) -> m a -> H m -h f b = (H . fmap (const ())) (fmap f b) diff --git a/testsuite/tests/partial-sigs/should_compile/T10403.stderr b/testsuite/tests/partial-sigs/should_compile/T10403.stderr deleted file mode 100644 index 6b0660dbad..0000000000 --- a/testsuite/tests/partial-sigs/should_compile/T10403.stderr +++ /dev/null @@ -1,17 +0,0 @@ - -T10403.hs:17:6: warning: - Found hole ‘_’ with inferred constraints: Functor f - In the type signature for ‘h’: _ => _ - -T10403.hs:17:11: warning: - Found hole ‘_’ with type: (a -> b) -> f a -> H f - Where: ‘f’ is a rigid type variable bound by - the inferred type of h :: Functor f => (a -> b) -> f a -> H f - at T10403.hs:19:1 - ‘b’ is a rigid type variable bound by - the inferred type of h :: Functor f => (a -> b) -> f a -> H f - at T10403.hs:19:1 - ‘a’ is a rigid type variable bound by - the inferred type of h :: Functor f => (a -> b) -> f a -> H f - at T10403.hs:19:1 - In the type signature for ‘h’: _ => _ diff --git a/testsuite/tests/partial-sigs/should_compile/all.T b/testsuite/tests/partial-sigs/should_compile/all.T index 91294a580c..e83e070dcd 100644 --- a/testsuite/tests/partial-sigs/should_compile/all.T +++ b/testsuite/tests/partial-sigs/should_compile/all.T @@ -46,4 +46,3 @@ test('SomethingShowable', normal, compile, ['-ddump-types -fno-warn-partial-type test('Uncurry', normal, compile, ['-ddump-types -fno-warn-partial-type-signatures']) test('UncurryNamed', normal, compile, ['-ddump-types -fno-warn-partial-type-signatures']) test('WarningWildcardInstantiations', normal, compile, ['-ddump-types']) -test('T10403', normal, compile, ['']) diff --git a/testsuite/tests/perf/should_run/T10359.hs b/testsuite/tests/perf/should_run/T10359.hs deleted file mode 100644 index fa10560970..0000000000 --- a/testsuite/tests/perf/should_run/T10359.hs +++ /dev/null @@ -1,125 +0,0 @@ -{-# LANGUAGE RankNTypes #-} -{-# LANGUAGE RecordWildCards #-} -{-# LANGUAGE ConstraintKinds #-} - -module Main( main, boo ) where - -import Prelude hiding (repeat) - -boo xs f = (\x -> f x, xs) - -repeat :: Int -> (a -> a) -> a -> a -repeat 1 f x = f x -repeat n f x = n `seq` x `seq` repeat (n-1) f $ f x - ----- Buggy version ------------------- - -type Numerical a = (Fractional a, Real a) - -data Box a = Box - { func :: forall dum. (Numerical dum) => dum -> a -> a - , obj :: !a } - -do_step :: (Numerical num) => num -> Box a -> Box a -do_step number Box{..} = Box{ obj = func number obj, .. } - -start :: Box Double -start = Box { func = \x y -> realToFrac x + y - , obj = 0 } - -test :: Int -> IO () -test steps = putStrLn $ show $ obj $ repeat steps (do_step 1) start - ----- Driver ------------ - -main :: IO () -main = test 2000 -- compare test2 10000000 or test3 10000000, but test4 20000 - - -{- ----- No tuple constraint synonym is better ------------------------------------------- - -data Box2 a = Box2 - { func2 :: forall num. (Fractional num, Real num) => num -> a -> a - , obj2 :: !a } - -do_step2 :: (Fractional num, Real num) => num -> Box2 a -> Box2 a -do_step2 number Box2{..} = Box2{ obj2 = func2 number obj2, ..} - -start2 :: Box2 Double -start2 = Box2 { func2 = \x y -> realToFrac x + y - , obj2 = 0 } - -test2 :: Int -> IO () -test2 steps = putStrLn $ show $ obj2 $ repeat steps (do_step2 1) start2 - ----- Not copying the function field works too ---------------------------------------------- - -do_step3 :: (Numerical num) => num -> Box a -> Box a -do_step3 number b@Box{..} = b{ obj = func number obj } - -test3 :: Int -> IO () -test3 steps = putStrLn $ show $ obj $ repeat steps (do_step3 1) start - ----- But record wildcards are not at fault ------------------------------------------- - -do_step4 :: (Numerical num) => num -> Box a -> Box a -do_step4 number Box{func = f, obj = x} = Box{ obj = f number x, func = f } - -test4 :: Int -> IO () -test4 steps = putStrLn $ show $ obj $ repeat steps (do_step4 1) start --} - - -{- -First of all, very nice example. Thank you for making it so small and easy to work with. - -I can see what's happening. The key part is what happens here: -{{{ -do_step4 :: (Numerical num) => num -> Box a -> Box a -do_step4 number Box{ func = f, obj = x} - = Box{ func = f, obj = f number x } -}}} -After elaboration (ie making dictionaries explicit) we get this: -{{{ -do_step4 dn1 number (Box {func = f, obj = x }) - = Box { func = \dn2 -> f ( case dn2 of (f,r) -> f - , case dn2 of (f,r) -> r) - , obj = f dn1 number x } -}}} -That's odd! We expected this: -{{{ -do_step4 dn1 number (Box {func = f, obj = x }) - = Box { func = f - , obj = f dn1 number x } -}}} -And indeed, the allocation of all those `\dn2` closures is what is causing the problem. -So we are missing this optimisation: -{{{ - (case dn2 of (f,r) -> f, case dn2 of (f,r) -> r) -===> - dn2 -}}} -If we did this, then the lambda would look like `\dn2 -> f dn2` which could eta-reduce to `f`. -But there are at least three problems: - * The tuple transformation above is hard to spot - * The tuple transformation is not quite semantically right; if `dn2` was bottom, the LHS and RHS are different - * The eta-reduction isn't quite semantically right: if `f` ws bottom, the LHS and RHS are different. - -You might argue that the latter two can be ignored because dictionary arguments are special; -indeed we often toy with making them strict. - -But perhaps a better way to avoid the tuple-transformation issue would be not to construct that strange expression in the first place. Where is it coming from? It comes from the call to `f` (admittedly applied to no arguments) in `Box { ..., func = f }`. GHC needs a dictionary for `(Numerical dum)` (I changed the name of the type variable in `func`'s type in the definition of `Box`). Since it's just a pair GHC says "fine, I'll build a pair, out of `Fractional dum` and `Real dum`. How does it get those dictionaries? By selecting the components of the `Franctional dum` passed to `f`. - -If GHC said instead "I need `Numerical dum` and behold I have one in hand, it'd be much better. It doesn't because tuple constraints are treated specially. But if we adopted the idea in #10362, we would (automatically) get to re-use the `Numerical dum` constraint. That would leave us with eta reduction, which is easier. - -As to what will get you rolling, a good solution is `test3`, which saves instantiating and re-generalising `f`. The key thing is to update all the fields ''except'' the polymorphic `func` field. I'm surprised you say that it doesn't work. Can you give a (presumably more complicated) example to demonstrate? Maybe there's a separate bug! - --} - - diff --git a/testsuite/tests/perf/should_run/T10359.stdout b/testsuite/tests/perf/should_run/T10359.stdout deleted file mode 100644 index f6f4e0735a..0000000000 --- a/testsuite/tests/perf/should_run/T10359.stdout +++ /dev/null @@ -1 +0,0 @@ -2000.0 diff --git a/testsuite/tests/perf/should_run/all.T b/testsuite/tests/perf/should_run/all.T index c95dfa0110..f6801040e3 100644 --- a/testsuite/tests/perf/should_run/all.T +++ b/testsuite/tests/perf/should_run/all.T @@ -1,16 +1,8 @@ # Tests that newArray/newArray_ is being optimised correctly -test('T10359', - [stats_num_field('bytes allocated', - [(wordsize(64), 499512, 5), - (wordsize(32), 250000, 5)]), - only_ways(['normal']) - ], - compile_and_run, - ['-O']) - # fortunately the values here are mostly independent of the wordsize, # because the test allocates an unboxed array of doubles. + test('T3586', [stats_num_field('peak_megabytes_allocated', (17, 1)), # expected value: 17 (amd64/Linux) diff --git a/testsuite/tests/rts/outofmem.stderr-i386-unknown-mingw32 b/testsuite/tests/rts/outofmem.stderr-i386-unknown-mingw32 index 2786841ad7..4b16ce9598 100644 --- a/testsuite/tests/rts/outofmem.stderr-i386-unknown-mingw32 +++ b/testsuite/tests/rts/outofmem.stderr-i386-unknown-mingw32 @@ -1 +1 @@ -outofmem.exe: out of memory
+outofmem.exe: Out of memory diff --git a/testsuite/tests/typecheck/should_fail/T9858a.stderr b/testsuite/tests/typecheck/should_fail/T9858a.stderr index 61c62eaeec..2f815b1824 100644 --- a/testsuite/tests/typecheck/should_fail/T9858a.stderr +++ b/testsuite/tests/typecheck/should_fail/T9858a.stderr @@ -1,14 +1,14 @@ -
-T9858a.hs:28:18: error:
- No instance for (Typeable
- ((() :: Constraint, () :: Constraint) => ()))
- (maybe you haven't applied a function to enough arguments?)
- arising from a use of ‘cast’
- In the expression: cast e
- In the expression: case cast e of { Just e' -> ecast e' }
- In an equation for ‘supercast’:
- supercast
- = case cast e of { Just e' -> ecast e' }
- where
- e = Refl
- e :: E PX PX
+ +T9858a.hs:28:18: error: + No instance for (Typeable + (((() :: Constraint), (() :: Constraint)) => ())) + (maybe you haven't applied a function to enough arguments?) + arising from a use of ‘cast’ + In the expression: cast e + In the expression: case cast e of { Just e' -> ecast e' } + In an equation for ‘supercast’: + supercast + = case cast e of { Just e' -> ecast e' } + where + e = Refl + e :: E PX PX diff --git a/testsuite/tests/typecheck/should_fail/fd-loop.stderr b/testsuite/tests/typecheck/should_fail/fd-loop.stderr index 44a0618181..96fbc3ef18 100644 --- a/testsuite/tests/typecheck/should_fail/fd-loop.stderr +++ b/testsuite/tests/typecheck/should_fail/fd-loop.stderr @@ -1,12 +1,12 @@ -
-fd-loop.hs:12:10: error:
- Variable ‘b’ occurs more often
- in the constraint ‘C a b’ than in the instance head
- (Use UndecidableInstances to permit this)
- In the instance declaration for ‘Eq (T a)’
-
-fd-loop.hs:12:10: error:
- Variable ‘b’ occurs more often
- in the constraint ‘Eq b’ than in the instance head
- (Use UndecidableInstances to permit this)
- In the instance declaration for ‘Eq (T a)’
+ +fd-loop.hs:12:10: + Variable ‘b’ occurs more often than in the instance head + in the constraint: C a b + (Use UndecidableInstances to permit this) + In the instance declaration for ‘Eq (T a)’ + +fd-loop.hs:12:10: + Variable ‘b’ occurs more often than in the instance head + in the constraint: Eq b + (Use UndecidableInstances to permit this) + In the instance declaration for ‘Eq (T a)’ diff --git a/testsuite/tests/typecheck/should_fail/tcfail108.stderr b/testsuite/tests/typecheck/should_fail/tcfail108.stderr index da766582b3..3a2e5a5657 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail108.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail108.stderr @@ -1,6 +1,6 @@ tcfail108.hs:7:10: error:
- Variable ‘f’ occurs more often
- in the constraint ‘Eq (f (Rec f))’ than in the instance head
+ Variable ‘f’ occurs more often than in the instance head
+ in the constraint: Eq (f (Rec f))
(Use UndecidableInstances to permit this)
In the instance declaration for ‘Eq (Rec f)’
diff --git a/testsuite/tests/typecheck/should_fail/tcfail154.stderr b/testsuite/tests/typecheck/should_fail/tcfail154.stderr index 903f61b7de..9014b643df 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail154.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail154.stderr @@ -1,6 +1,6 @@ -
-tcfail154.hs:12:10: error:
- Variable ‘a’ occurs more often
- in the constraint ‘C a a’ than in the instance head
- (Use UndecidableInstances to permit this)
- In the instance declaration for ‘Eq (T a)’
+ +tcfail154.hs:12:10: + Variable ‘a’ occurs more often than in the instance head + in the constraint: C a a + (Use UndecidableInstances to permit this) + In the instance declaration for ‘Eq (T a)’ diff --git a/testsuite/tests/typecheck/should_fail/tcfail157.stderr b/testsuite/tests/typecheck/should_fail/tcfail157.stderr index 113e0cc67e..acdc7df8cf 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail157.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail157.stderr @@ -1,12 +1,12 @@ -
-tcfail157.hs:27:10: error:
- Variable ‘b’ occurs more often
- in the constraint ‘E m a b’ than in the instance head
- (Use UndecidableInstances to permit this)
- In the instance declaration for ‘Foo m (a -> ())’
-
-tcfail157.hs:27:10: error:
- Variable ‘b’ occurs more often
- in the constraint ‘Foo m b’ than in the instance head
- (Use UndecidableInstances to permit this)
- In the instance declaration for ‘Foo m (a -> ())’
+ +tcfail157.hs:27:10: + Variable ‘b’ occurs more often than in the instance head + in the constraint: E m a b + (Use UndecidableInstances to permit this) + In the instance declaration for ‘Foo m (a -> ())’ + +tcfail157.hs:27:10: + Variable ‘b’ occurs more often than in the instance head + in the constraint: Foo m b + (Use UndecidableInstances to permit this) + In the instance declaration for ‘Foo m (a -> ())’ diff --git a/testsuite/tests/typecheck/should_fail/tcfail213.stderr b/testsuite/tests/typecheck/should_fail/tcfail213.stderr index a29b758a42..a6b63bd9f1 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail213.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail213.stderr @@ -1,7 +1,7 @@ -
-tcfail213.hs:8:1: error:
- Illegal constraint ‘F a’ in a superclass context
- (Use UndecidableInstances to permit this)
- In the context: F a
- While checking the super-classes of class ‘C’
- In the class declaration for ‘C’
+ +tcfail213.hs:8:1: + Illegal constraint ‘F a’ in a superclass/instance context + (Use UndecidableInstances to permit this) + In the context: F a + While checking the super-classes of class ‘C’ + In the class declaration for ‘C’ diff --git a/testsuite/tests/typecheck/should_fail/tcfail214.stderr b/testsuite/tests/typecheck/should_fail/tcfail214.stderr index a2741b876b..5520a3eff1 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail214.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail214.stderr @@ -1,5 +1,7 @@ -
-tcfail214.hs:9:10: error:
- The constraint ‘F a’ is no smaller than the instance head
- (Use UndecidableInstances to permit this)
- In the instance declaration for ‘C [a]’
+ +tcfail214.hs:9:10: + Illegal constraint ‘F a’ in a superclass/instance context + (Use UndecidableInstances to permit this) + In the context: F a + While checking an instance declaration + In the instance declaration for ‘C [a]’ diff --git a/testsuite/tests/typecheck/should_fail/tcfail220.hsig b/testsuite/tests/typecheck/should_fail/tcfail220.hsig index 560fc317a6..129bae368c 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail220.hsig +++ b/testsuite/tests/typecheck/should_fail/tcfail220.hsig @@ -1,4 +1,5 @@ {-# LANGUAGE NoImplicitPrelude #-} module ShouldFail where +data Bool a b c d = False data Maybe a b = Nothing diff --git a/testsuite/tests/typecheck/should_fail/tcfail220.stderr b/testsuite/tests/typecheck/should_fail/tcfail220.stderr index 432dc4c1a3..6a4e87382d 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail220.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail220.stderr @@ -1,9 +1,17 @@ -[1 of 1] Compiling ShouldFail[sig of Prelude] ( tcfail220.hsig, nothing )
-
-tcfail220.hsig:4:1: error:
- Type constructor ‘Maybe’ has conflicting definitions in the module
- and its hsig file
- Main module: data Maybe a = Nothing | Just a
- Hsig file: type role Maybe phantom phantom
- data Maybe a b = Nothing
- The types have different kinds
+[1 of 1] Compiling ShouldFail[sig of Prelude] ( tcfail220.hsig, nothing ) + +tcfail220.hsig:4:1: error: + Type constructor ‘Bool’ has conflicting definitions in the module + and its hsig file + Main module: data Bool = False | True + Hsig file: type role Bool phantom phantom phantom phantom + data Bool a b c d = False + The types have different kinds + +tcfail220.hsig:5:1: error: + Type constructor ‘Maybe’ has conflicting definitions in the module + and its hsig file + Main module: data Maybe a = Nothing | Just a + Hsig file: type role Maybe phantom phantom + data Maybe a b = Nothing + The types have different kinds |