
#11224: Program doesn't preserve semantics after pattern synonym inlining. -------------------------------------+------------------------------------- Reporter: anton.dubovik | Owner: Type: bug | Status: new Priority: highest | Milestone: 8.0.1 Component: Compiler | Version: 7.10.2 Resolution: | Keywords: | PatternSynonyms Operating System: Windows | Architecture: x86_64 Type of failure: Incorrect result | (amd64) at runtime | Test Case: Blocked By: | Blocking: Related Tickets: #11225 | Differential Rev(s): Phab:D1632 Wiki Page: | -------------------------------------+------------------------------------- Comment (by goldfire): But how should we tell universals from existentials? If I say {{{ pattern type P :: a -> String }}} is `a` universal or existential? It seems mpickering wants the answer to be "it depends on the definition for `P`". That may well be implementable, but it negates a critical property of type signatures: that they give a specification of how a pattern synonym behaves absent its definition. We somehow have to be able to specify this in the signature itself. I don't have much perspective on Simon's comment:22. It's about implementation, and I'm still stuck on design. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11224#comment:23 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler