ghc 7.10.2类型系列扩展不起作用

wow*_*bob 5 haskell ghc type-families

parse error on input ‘where’在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
Run Code Online (Sandbox Code Playgroud)

两年前有人问过GHC 7.4.2.

今年我用GHC 7.6.*(不记得最后一位数字)的类型家庭.这是GHC 7.10.2的问题吗?

根据用户指南,可以使用类型系列.

我的GHC 7.10.2和cabal 1.22.6.0从这个PPA安装.

Rei*_*ton 8

你不能混合这样的开放式和封闭式家庭语法,而且我不确定你从哪里得到这个想法.正确的语法是

type family F a :: * where
  F (Maybe Int)  = Int
  F (Maybe Bool) = Bool
  F (Maybe a)    = String
Run Code Online (Sandbox Code Playgroud)

  • 显然OP语法*实现了一段时间(在HEAD,而不是任何发布的版本),但[技术问题](https://ghc.haskell.org/trac/ghc/wiki/NewAxioms/ClosedTypeFamilies)导致它被缩回并被[当前封闭式家庭版本]取代(https://ghc.haskell.org/trac/ghc/wiki/NewAxioms). (2认同)