[GHC] #12006: Can't infer constraint of pattern synonyms
GHC
ghc-devs at haskell.org
Mon May 2 22:57:51 UTC 2016
#12006: Can't infer constraint of pattern synonyms
-------------------------------------+-------------------------------------
Reporter: Iceland_jack | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.1
Resolution: | Keywords:
| PatternSynonyms
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Changes (by mpickering):
* keywords: TypeSynonyms => PatternSynonyms
Comment:
The problem here is that the type signature of the builder is fixed by the
type of the matcher. By fixed, I mean literally fixed, we first typecheck
the matcher with either the signature or infer the type and then we create
an `Id` for the builder with precisely the same type.
So the problem here is that the inferred type for the matcher doesn't
require the `Num` constraint and so the builder type is `t -> Complex t`
rather than `Num t => t -> Complex t` as you desire.
From what I could work out from reading the source, the way it is like
this is for mainly because of implementation problems. There is some more
confused discussion on this ticket
-https://ghc.haskell.org/trac/ghc/ticket/8581 - it is something I hope to
look at again one day.
Thank you for all these reports, they are very useful, I am interested in
any pattern synonyms tickets so feel free to add me to cc to make sure
that I see them.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12006#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list