Thanks Richard. Basically I was storing the type family and its arguments in the data type, so that I can transform its arguments before it gets applied to stored typefamily (via. another closed type function). Is this even possible to do by any chance in 7.8.4 & later?On Tue, Jan 13, 2015 at 8:32 PM, Richard Eisenberg <eir@cis.upenn.edu> wrote: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.RichardOn Jan 13, 2015, at 9:49 AM, magesh b <magesh85@gmail.com> wrote:_______________________________________________Hi,{-# LANGUAGE TypeFamilies, ConstraintKinds #-}import GHC.Extstype family TyFun adata DictC (c :: * -> Constraint)data DictTF (tf :: * -> *)type Test1 = DictTF TyFun -- Fails here in 7.8.4type Test2 = DictC ShowWhen 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 noneIn 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.Thanks & Regards,Magesh B
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs