summaryrefslogtreecommitdiff
path: root/testsuite/tests/roles/should_compile/Roles1.stderr
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2014-06-03 14:15:52 +0100
committerSimon Peyton Jones <simonpj@microsoft.com>2014-06-03 14:24:08 +0100
commitb4856f9f4f0fb3db473901b247d3fa94a11c25a0 (patch)
tree64512fff57acca9baf54d0e72d516679763711a9 /testsuite/tests/roles/should_compile/Roles1.stderr
parentda64c97f1c0b147ea80a34fe64fe947ba7820c00 (diff)
downloadhaskell-b4856f9f4f0fb3db473901b247d3fa94a11c25a0.tar.gz
Do pretty-printing of TyThings via IfaceDecl (Trac #7730)
All the initial work on this was done fy 'archblob' (fcsernik@gmail.com); thank you! I reviewed the patch, started some tidying, up and then ended up in a huge swamp of changes, not all of which I can remember now. But: * To suppress kind arguments when we have -fno-print-explicit-kinds, - IfaceTyConApp argument types are in a tagged list IfaceTcArgs * To allow overloaded types to be printed with =>, add IfaceDFunTy to IfaceType. * When printing data/type family instances for the user, I've made them print out an informative RHS, which is a new feature. Thus ghci> info T data family T a data instance T Int = T1 Int Int data instance T Bool = T2 * In implementation terms, pprIfaceDecl has just one "context" argument, of type IfaceSyn.ShowSub, which says - How to print the binders of the decl see note [Printing IfaceDecl binders] in IfaceSyn - Which sub-comoponents (eg constructors) to print * Moved FastStringEnv from RnEnv to OccName It all took a ridiculously long time to do. But it's done!
Diffstat (limited to 'testsuite/tests/roles/should_compile/Roles1.stderr')
-rw-r--r--testsuite/tests/roles/should_compile/Roles1.stderr64
1 files changed, 15 insertions, 49 deletions
diff --git a/testsuite/tests/roles/should_compile/Roles1.stderr b/testsuite/tests/roles/should_compile/Roles1.stderr
index de4ecf36e2..96d5603bbf 100644
--- a/testsuite/tests/roles/should_compile/Roles1.stderr
+++ b/testsuite/tests/roles/should_compile/Roles1.stderr
@@ -1,54 +1,20 @@
TYPE SIGNATURES
TYPE CONSTRUCTORS
- T1 :: * -> *
- data T1 a
- No C type associated
- Roles: [nominal]
- RecFlag NonRecursive, Promotable
- = K1 :: forall a. a -> T1 a Stricts: _
- FamilyInstance: none
- T2 :: * -> *
- data T2 a
- No C type associated
- Roles: [representational]
- RecFlag NonRecursive, Promotable
- = K2 :: forall a. a -> T2 a Stricts: _
- FamilyInstance: none
- T3 :: forall (k :: BOX). k -> *
- data T3 (k::BOX) (a::k)
- No C type associated
- Roles: [nominal, phantom]
- RecFlag NonRecursive, Not promotable
- = K3 :: forall (k::BOX) (a::k). T3 k a
- FamilyInstance: none
- T4 :: (* -> *) -> * -> *
- data T4 (a::* -> *) b
- No C type associated
- Roles: [nominal, nominal]
- RecFlag NonRecursive, Not promotable
- = K4 :: forall (a::* -> *) b. (a b) -> T4 a b Stricts: _
- FamilyInstance: none
- T5 :: * -> *
- data T5 a
- No C type associated
- Roles: [representational]
- RecFlag NonRecursive, Promotable
- = K5 :: forall a. a -> T5 a Stricts: _
- FamilyInstance: none
- T6 :: forall (k :: BOX). k -> *
- data T6 (k::BOX) (a::k)
- No C type associated
- Roles: [nominal, phantom]
- RecFlag NonRecursive, Not promotable
- = K6 :: forall (k::BOX) (a::k). T6 k a
- FamilyInstance: none
- T7 :: forall (k :: BOX). k -> * -> *
- data T7 (k::BOX) (a::k) b
- No C type associated
- Roles: [nominal, phantom, representational]
- RecFlag NonRecursive, Not promotable
- = K7 :: forall (k::BOX) (a::k) b. b -> T7 k a b Stricts: _
- FamilyInstance: none
+ type role T1 nominal
+ data T1 a = K1 a
+ Promotable
+ data T2 a = K2 a
+ Promotable
+ type role T3 phantom
+ data T3 (a :: k) = K3
+ type role T4 nominal nominal
+ data T4 (a :: * -> *) b = K4 (a b)
+ data T5 a = K5 a
+ Promotable
+ type role T6 phantom
+ data T6 (a :: k) = K6
+ type role T7 phantom representational
+ data T7 (a :: k) b = K7 b
COERCION AXIOMS
Dependent modules: []
Dependent packages: [base, ghc-prim, integer-gmp]