ghc 7.10.2 类型族扩展不起作用

ghc 7.10.2 type families extension doesn't work

我在 GHC 7.10.2 中尝试以下示例时得到 parse error on input ‘where’

{-# 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.

我今年在 GHC 7.6 中使用了很好的类型族。*(不记得最后一个数字)。是 GHC 7.10.2 的问题吗?

根据 the User's Guide,类型族可用。

我的 GHC 7.10.2 和 cabal 1.22.6.0 从 this PPA 安装。

您不能像这样混合使用开放式和封闭式系列语法,我不确定您是从哪里得到这个想法的。正确的语法是

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