2015-08-25 43 views
5

我越來越parse error on input ‘where’試圖GHC 7.10.2下面的例子時:GHC 7.10.2型家庭擴展不起作用

{-# LANGUAGE TypeFamilies #-} 

type family F a :: * 
type instance where 
    F (Maybe Int) = Int 
    F (Maybe Bool) = Bool 
    F (Maybe a) = String 

Same question was asked two years ago about GHC 7.4.2

我使用的是GHC7.6的類型系列*。(不記得最後一位數字)今年。 GHC 7.10.2有問題嗎?

根據the User's Guide,類型系列可用。

我的GHC 7.10.2和cabal 1.22.6.0,其中從this PPA安裝。

+0

可能重複http://stackoverflow.com/questions/16338175/type-families-extension-does-not-work-as-描述) – Bakuriu

回答

8

你不能混合這樣的開放和封閉類型的家庭語法,我不知道你從哪裏得到這個想法。正確的語法是

type family F a :: * where 
    F (Maybe Int) = Int 
    F (Maybe Bool) = Bool 
    F (Maybe a) = String 
[類型系列如所描述的擴展不工作(的
+0

確實,謝謝:) – wowofbob

+2

顯然,OP語法*實現了一段時間(在HEAD中,沒有任何發佈的版本),但[技術問題](https://ghc.haskell.org/trac/ghc/ wiki/NewAxioms/ClosedTypeFamilies)導致它被撤回,並被[當前封閉類型家族版本]取代(https://ghc.haskell.org/trac/ghc/wiki/NewAxioms)。 –