pattern synonym with required ctx having polykinded constraint fails

Sreenidhi Nair nair.sreenidhi at gmail.com
Wed Oct 21 12:17:19 UTC 2015


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 at 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
> <nair.sreenidhi at gmail.com> 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
> 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 at haskell.org
> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
> >
>



-- 
Yours truly,
Sreenidhi Nair
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20151021/5b56ca0d/attachment.html>


More information about the ghc-devs mailing list