summaryrefslogtreecommitdiff
path: root/compiler/hsSyn
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2015-10-28 09:41:27 +0000
committerSimon Peyton Jones <simonpj@microsoft.com>2015-10-28 09:46:22 +0000
commit04b0a73a2a418e1ca9c282ab3f2b4fe216911fdd (patch)
tree9914155e4873cd7a1b3c3dcee8fe12119b2ddbf2 /compiler/hsSyn
parent9fc2d777f53110040f48ab27643a16888fa377f5 (diff)
downloadhaskell-04b0a73a2a418e1ca9c282ab3f2b4fe216911fdd.tar.gz
Pattern synonyms: swap provided/required
This patch swaps the order of provided and required constraints in a pattern signature, so it now goes pattern P :: req => prov => t1 -> ... tn -> res_ty See the long discussion in Trac #10928. I think I have found all the places, but I could have missed something particularly in comments. There is a Haddock changes; so a submodule update.
Diffstat (limited to 'compiler/hsSyn')
-rw-r--r--compiler/hsSyn/HsBinds.hs16
1 files changed, 8 insertions, 8 deletions
diff --git a/compiler/hsSyn/HsBinds.hs b/compiler/hsSyn/HsBinds.hs
index 4b661ff6cd..18756f632f 100644
--- a/compiler/hsSyn/HsBinds.hs
+++ b/compiler/hsSyn/HsBinds.hs
@@ -641,8 +641,8 @@ data Sig name
-- For details on above see note [Api annotations] in ApiAnnotation
| PatSynSig (Located name)
(HsExplicitFlag, LHsTyVarBndrs name)
- (LHsContext name) -- Provided context
(LHsContext name) -- Required context
+ (LHsContext name) -- Provided context
(LHsType name)
-- | A type signature for a default method inside a class
@@ -839,23 +839,23 @@ ppr_sig (InlineSig var inl) = pragBrackets (ppr inl <+> pprPrefixOcc (unLo
ppr_sig (SpecInstSig _ ty)
= pragBrackets (ptext (sLit "SPECIALIZE instance") <+> ppr ty)
ppr_sig (MinimalSig _ bf) = pragBrackets (pprMinimalSig bf)
-ppr_sig (PatSynSig name (flag, qtvs) (L _ prov) (L _ req) ty)
+ppr_sig (PatSynSig name (flag, qtvs) (L _ req) (L _ prov) ty)
= pprPatSynSig (unLoc name) False -- TODO: is_bindir
(pprHsForAll flag qtvs (noLoc []))
- (pprHsContextMaybe prov) (pprHsContextMaybe req)
+ (pprHsContextMaybe req) (pprHsContextMaybe prov)
(ppr ty)
pprPatSynSig :: (OutputableBndr name)
=> name -> Bool -> SDoc -> Maybe SDoc -> Maybe SDoc -> SDoc -> SDoc
-pprPatSynSig ident _is_bidir tvs prov req ty
+pprPatSynSig ident _is_bidir tvs req prov ty
= ptext (sLit "pattern") <+> pprPrefixOcc ident <+> dcolon <+>
tvs <+> context <+> ty
where
- context = case (prov, req) of
+ context = case (req, prov) of
(Nothing, Nothing) -> empty
- (Nothing, Just req) -> parens empty <+> darrow <+> req <+> darrow
- (Just prov, Nothing) -> prov <+> darrow
- (Just prov, Just req) -> prov <+> darrow <+> req <+> darrow
+ (Nothing, Just prov) -> parens empty <+> darrow <+> prov <+> darrow
+ (Just req, Nothing) -> req <+> darrow
+ (Just req, Just prov) -> req <+> darrow <+> prov <+> darrow
instance OutputableBndr name => Outputable (FixitySig name) where
ppr (FixitySig names fixity) = sep [ppr fixity, pprops]