2012-02-26 11 views
20

私は簡単な例を記述しようとすると、GHC 7.4.1の制約の種類構文は何ですか?

{-# LANGUAGE UndecidableInstances, 
      MultiParamTypeClasses, 
      KindSignatures, 
      Rank2Types, 
      ConstraintKinds, 
      FlexibleInstances, 
      OverlappingInstances, 
      TypeFamilies #-} 

type family A a :: Constraint 

エラーが

> ghci test.hs 
[1 of 1] Compiling Main    (test.hs, interpreted) 

test.hs:10:20: Not in scope: type constructor or class `Constraint' 
Failed, modules loaded: none. 

制約同義語が期待どおりに動作するように見える、である、Constraintがスコープ内にないことを示すエラーを取得しています

type ShowOrd a = (Ord a, Show a) 

ありがとうございます。

答えて

26

このエラーは、Constraintが範囲外であることに起因しているようです。 GHC.Primまたはfrom GHC.Extsからインポートします。

ConstraintKindsを有効にすると、自動的にスコープに反映されないようですが、これは7.3.2のスナップショットのビルドと同じですが、そこにはあります。

+0

素晴らしい、ありがとう! – gatoatigrado

+0

GHC.Primの代わりにそれをインポートする公式の場所はありますか?それらの拡張機能をサポートする他のコンパイラで動作する可能性のあるもの – semicolon