Difference in Partial TypeFamily application between 7.8.3 & 7.8.4

Richard Eisenberg eir at cis.upenn.edu
Tue Jan 13 15:02:48 UTC 2015


Hello Magesh,

The bug is in 7.8.3, which should never have allowed your `Test1`. Haskell type families may not be partially applied -- the type system and type inference just don't know how to handle such things. In 7.8.3, the check was accidentally turned off, as discussed in #9433, as you found. 7.8.3 allows you to do a few limited things with partially applied families, but you'll get very strange errors if you continue down that road, as GHC quickly gets horribly confused.

I'm afraid you'll have to find a different way to express what you want.

Richard

On Jan 13, 2015, at 9:49 AM, magesh b <magesh85 at gmail.com> wrote:

> Hi,
> 
> {-# LANGUAGE TypeFamilies, ConstraintKinds #-}
> 
> import GHC.Exts
> 
> type family TyFun a
> 
> data DictC (c :: * -> Constraint)
> 
> data DictTF (tf :: * -> *)
> 
> type Test1 = DictTF TyFun -- Fails here in 7.8.4
> 
> type Test2 = DictC Show
> 
> When I compile the above code, I'm getting the following error in 7.8.4 and the same code works in 7.8.3. 
> 
> Test.hs:11:1:
>     Type synonym ‘TyFun’ should have 1 argument, but has been given none
>     In the type declaration for ‘Test1’
> 
> Is this a bug or a expected behavior? 
> For reference, I could find two fixes to type family related bug in this release.
> https://ghc.haskell.org/trac/ghc/ticket/9433
> https://ghc.haskell.org/trac/ghc/ticket/9316
> 
> 
> Thanks & Regards,
> Magesh B
> 
> 
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://www.haskell.org/mailman/listinfo/ghc-devs

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20150113/10091a47/attachment.html>


More information about the ghc-devs mailing list