pattern synonym with required ctx having polykinded constraint fails
Sreenidhi Nair
nair.sreenidhi at gmail.com
Wed Oct 21 11:49:05 UTC 2015
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20151021/e5b5fc94/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bug.tar.gz
Type: application/x-gzip
Size: 2154 bytes
Desc: not available
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20151021/e5b5fc94/attachment.bin>
More information about the ghc-devs
mailing list