[GHC] #13321: Importing a bundled pattern "infects" all other imports of that pattern
GHC
ghc-devs at haskell.org
Thu Feb 23 01:38:25 UTC 2017
#13321: Importing a bundled pattern "infects" all other imports of that pattern
-------------------------------------+-------------------------------------
Reporter: ezyang | Owner: (none)
Type: bug | Status: new
Priority: low | Milestone:
Component: Compiler | Version: 8.0.1
(Type checker) |
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
Consider:
{{{
{-# LANGUAGE PatternSynonyms #-}
unit p where
module A0 where
data G = G Int
module A1 where
import A0
pattern X x = G x
module A(G(X)) where
import A0
import A1
module B(G) where
import A
module C(pattern X) where
import A
module D(N.G, pattern N.X) where
import B
import C
import qualified A0 as N
import qualified A1 as N
}}}
When we look at the interface for D, we see that N is bundled with D. This
is a little surprising because I explicitly exported the G and X from A0
and A1, where no bundling took place.
I suppose the current semantics might also be alright, but we should
explicitly say so. The spec in the wiki is silent in this respect:
https://ghc.haskell.org/trac/ghc/wiki/PatternSynonyms/AssociatingSynonyms
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13321>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list