今日、私はからGADTsについて学ぶために始めました。私は例からコードを実行した場合、私は次のエラーを取得する:ハスケルでどのようにGADTを許可しますか?残念ながら、私はそれらを使用する方法がわからない<a href="https://downloads.haskell.org/~ghc/6.6.1/docs/html/users_guide/gadt.html">haskell.org</a>と</p> <p><a href="https://wiki.haskell.org/GADTs_for_dummies">https://wiki.haskell.org</a>:
[1 of 1] Compiling Main (test.hs, interpreted)
AFP_229.hs:31:1:
Illegal generalised algebraic data declaration for `Term'
(Use GADTs to allow GADTs)
In the data declaration for `Term'
Failed, modules loaded: none.
Prelude>
これは私が使用していますコードです:
data Term a where
Lit :: Int -> Term Int
Succ :: Term Int -> Term Int
IsZero :: Term Int -> Term Bool
If :: Term Bool -> Term a -> Term a -> Term a
Pair :: Term a -> Term b -> Term (a,b)
私は他のサンプルコードを試してみましたが、これは私に同じエラーを与えます。 GADTをどのように許可しますか?
コンパイラオプションまたはプラグマを使用します。 https://downloads.haskell.org/~ghc/7.8.2/docs/html/users_guide/ghc-language-features.html#options-language –