Diciamo che voglio definire un albero come questo:Alternativa per deprecato -XDatatypeContext?
{-# LANGUAGE DatatypeContexts #-}
class Node a where
getContent :: (Num a) => a
data (Node a) => Tree a = Leaf a
| Branch a (Tree a) (Tree a)
-XDatatypeContexts è deprecato ora. È possibile fare qualcosa di simile senza di esso?
Grazie mille! Anche se penso tu intenda: Branch :: (Node a) => a -> Albero a -> Albero a – Jake
@Jake: No - funziona come una firma del tipo di funzione, quindi l'ultimo 'Albero a' è il risultato tipo di dati. 'a -> Albero a -> Albero a 'avrebbe solo un sotto-albero. Confronta il tipo di costruttore 'Branch' che hai attualmente. –
Oh, giusto, vedo. – Jake