Commit a8018c17 authored by Vladislav Zavialov's avatar Vladislav Zavialov Committed by Marge Bot
Browse files

Fix pretty-printing of the mult-polymorphic arrow

A follow-up to !4020 (5830a12c)
parent ba5965eb
......@@ -677,7 +677,7 @@ lbrace = docToSDoc $ Pretty.lbrace
rbrace = docToSDoc $ Pretty.rbrace
mulArrow :: SDoc -> SDoc
mulArrow d = text "#" <+> d <+> arrow
mulArrow d = text "%" <> d <+> arrow
forAllLit :: SDoc
......
......@@ -5,15 +5,15 @@ LinearErrOrigin.hs:7:7: error:
the type signature for:
foo :: forall a b (p :: GHC.Types.Multiplicity)
(q :: GHC.Types.Multiplicity).
(a # p -> b) -> a # q -> b
(a %p -> b) -> a %q -> b
at LinearErrOrigin.hs:6:1-31
‘q’ is a rigid type variable bound by
the type signature for:
foo :: forall a b (p :: GHC.Types.Multiplicity)
(q :: GHC.Types.Multiplicity).
(a # p -> b) -> a # q -> b
(a %p -> b) -> a %q -> b
at LinearErrOrigin.hs:6:1-31
• In an equation for ‘foo’: foo f x = f x
• Relevant bindings include
f :: a # p -> b (bound at LinearErrOrigin.hs:7:5)
foo :: (a # p -> b) -> a # q -> b (bound at LinearErrOrigin.hs:7:1)
f :: a %p -> b (bound at LinearErrOrigin.hs:7:5)
foo :: (a %p -> b) -> a %q -> b (bound at LinearErrOrigin.hs:7:1)
......@@ -3,5 +3,5 @@ LinearPartialSig.hs:5:9: error:
• Found type wildcard ‘_’
standing for ‘'Many :: GHC.Types.Multiplicity’
To use the inferred type, enable PartialTypeSignatures
• In the type ‘a # _ -> a’
In the type signature: f :: a # _ -> a
• In the type ‘a %_ -> a’
In the type signature: f :: a %_ -> a
LinearVar.hs:5:5: error:
• Couldn't match type ‘m’ with ‘'Many’
Expected: a # m -> b
Expected: a %m -> b
Actual: a -> b
‘m’ is a rigid type variable bound by
the type signature for:
f :: forall a b (m :: GHC.Types.Multiplicity). a # m -> b
f :: forall a b (m :: GHC.Types.Multiplicity). a %m -> b
at LinearVar.hs:4:1-14
• In the expression: undefined :: a -> b
In an equation for ‘f’: f = undefined :: a -> b
• Relevant bindings include
f :: a # m -> b (bound at LinearVar.hs:5:1)
f :: a %m -> b (bound at LinearVar.hs:5:1)
......@@ -14,7 +14,7 @@ convert :: Wrap Age -> Int
convert
= convert1
`cast` (<Wrap Age>_R
# <'Many>_N ->_R Roles13.N:Wrap[0] (Roles13.N:Age[0])
%<'Many>_N ->_R Roles13.N:Wrap[0] (Roles13.N:Age[0])
:: (Wrap Age -> Wrap Age) ~R# (Wrap Age -> Int))
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
......
[HasNoCafRefs, LambdaFormInfo: LFReEntrant 1, Arity: 1,
Strictness: <S,1*U>,
Unfolding: InlineRule (0, True, True)
bof `cast` (Sym (N:Foo[0]) # <'Many>_N ->_R <T>_R)]
bof `cast` (Sym (N:Foo[0]) %<'Many>_N ->_R <T>_R)]
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment