Dzisiaj zacząłem się uczyć o GADT od: haskell.org i https://wiki.haskell.orgJak zezwolić na GADT w Haskell?
Niestety, nie wiem jak z nich korzystać. Jeśli uruchomić kod z przykładu I pojawia się następujący błąd:
[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>
Jest to kod używam:
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)
Próbowałem inny kod przykładowy, ale to daje mi ten sam błąd . Jak zezwolić na GADT?
Użyj opcji kompilatora lub pragmy. https://downloads.haskell.org/~ghc/7.8.2/docs/html/users_guide/ghc-language-features.html#options-language –