Heute begann ich, über GADTs zu lernen: haskell.org und https://wiki.haskell.orgWie erlauben Sie GADTs in Haskell?
Leider weiß ich nicht, wie man sie benutzt. Wenn ich den Code aus dem Beispiel fahre ich die folgende Fehlermeldung erhalten:
[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>
Dies ist der Code ich verwende:
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)
ich anderen Beispielcode versucht, aber das gibt mir den gleichen Fehler . Wie erlauben Sie GADTs?
Verwenden Sie eine Compileroption oder ein Pragma. https://downloads.haskell.org/~ghc/7.8.2/docs/html/users_guide/ghc-language-features.html#options-language –