pattern synonym with required ctx having polykinded constraint fails

Hello, We have a pattern synonym as follows type family Showable (a :: k) :: Constraint where Showable (a :: *) = (Show a) Showable a = () pattern Just' :: () => (Showable a) => a -> (Maybe a) pattern Just' a <- (extractJust -> (True, a)) where Just' a = Just a When we try to use the pattern in a different package, the error was [1 of 1] Compiling Bar ( Bar.hs, .stack-work/dist/x86_64-linux/Cabal-1.22.4.0/build/Bar.o ) /tmp/test/p2/.stack-work/install/x86_64-linux/lts-3.5/7.10.2/lib/x86_64-linux-ghc-7.10.2/p1-0.1.0.0-I5t4il6dN7vIqsT1XgYsM3/Foo.hi Declaration for Just' Pattern synonym Just': Iface type variable out of scope: k Cannot continue after interface file error The error only occurred when Showable was polykinded and we used synonym in a different package . Using the synonym in the same package works fine. This problem did not happen with the following definition of (non polykinded ) Showable type family Showable a :: Constraint where Showable a = (Show a) We have attached the sample packages which simulate the exact scenario described above. -- Yours truly, Sreenidhi Nair

Looks like a definite bug. Filed as #10977
https://ghc.haskell.org/trac/ghc/ticket/10997
Matt
On Wed, Oct 21, 2015 at 12:49 PM, Sreenidhi Nair
Hello,
We have a pattern synonym as follows
type family Showable (a :: k) :: Constraint where Showable (a :: *) = (Show a) Showable a = ()
pattern Just' :: () => (Showable a) => a -> (Maybe a) pattern Just' a <- (extractJust -> (True, a)) where Just' a = Just a
When we try to use the pattern in a different package, the error was
[1 of 1] Compiling Bar ( Bar.hs, .stack-work/dist/x86_64-linux/Cabal-1.22.4.0/build/Bar.o )
/tmp/test/p2/.stack-work/install/x86_64-linux/lts-3.5/7.10.2/lib/x86_64-linux-ghc-7.10.2/p1-0.1.0.0-I5t4il6dN7vIqsT1XgYsM3/Foo.hi Declaration for Just' Pattern synonym Just': Iface type variable out of scope: k Cannot continue after interface file error
The error only occurred when Showable was polykinded and we used synonym in a different package . Using the synonym in the same package works fine.
This problem did not happen with the following definition of (non polykinded ) Showable
type family Showable a :: Constraint where Showable a = (Show a)
We have attached the sample packages which simulate the exact scenario described above.
-- Yours truly, Sreenidhi Nair
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Thanks Matthew, Do you think there is any workaround to this issue that we could try? On Wed, Oct 21, 2015 at 5:25 PM, Matthew Pickering < matthewtpickering@gmail.com> wrote:
Looks like a definite bug. Filed as #10977
https://ghc.haskell.org/trac/ghc/ticket/10997
Matt
On Wed, Oct 21, 2015 at 12:49 PM, Sreenidhi Nair
wrote: Hello,
We have a pattern synonym as follows
type family Showable (a :: k) :: Constraint where Showable (a :: *) = (Show a) Showable a = ()
pattern Just' :: () => (Showable a) => a -> (Maybe a) pattern Just' a <- (extractJust -> (True, a)) where Just' a = Just a
When we try to use the pattern in a different package, the error was
[1 of 1] Compiling Bar ( Bar.hs, .stack-work/dist/x86_64-linux/Cabal-1.22.4.0/build/Bar.o )
/tmp/test/p2/.stack-work/install/x86_64-linux/lts-3.5/7.10.2/lib/x86_64-linux-ghc-7.10.2/p1-0.1.0.0-I5t4il6dN7vIqsT1XgYsM3/Foo.hi
Declaration for Just' Pattern synonym Just': Iface type variable out of scope: k Cannot continue after interface file error
The error only occurred when Showable was polykinded and we used synonym
a different package . Using the synonym in the same package works fine.
This problem did not happen with the following definition of (non
in polykinded
) Showable
type family Showable a :: Constraint where Showable a = (Show a)
We have attached the sample packages which simulate the exact scenario described above.
-- Yours truly, Sreenidhi Nair
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
-- Yours truly, Sreenidhi Nair
participants (2)
-
Matthew Pickering
-
Sreenidhi Nair