Spesso quando sto giocando con il codice Haskell, interrompo le cose con un'annotazione di tipo e undefined
.Non definito a livello di tipo
foo :: String -> Int
foo = undefined
Esiste un livello di tipo "non definito" che potrei utilizzare in modo simile?
(Idealmente, in combinazione con un tipo di annotazione)
type Foo :: * -> *
type Foo = Undefined
Ulteriori pensiero sullo stesso thread: c'è un modo per me di spegnere typeclass casi per i tipi creati in questo modo? Un modo ancora più semplice del seguente modo teorico?
instance Monad Foo where
return = undefined
(>>=) = undefined
Bello! Esattamente quello che stavo cercando; è ancora più conveniente perché non devi scrivere 'Foo = Undefined'! E le firme gentili! Salsa stupenda. –
Credo che non sia lo stesso di un alias di tipo - quando si introduce un nuovo dato, non c'è alcuna possibilità che 'Foo a = a'. Quindi, non è lo stesso del codice della domanda, che potrebbe andare bene. – gatoatigrado
@gatoatigrado: Penso che il requisito fosse solo un segnaposto per un tipo ancora da scrivere, non un alias di tipo per sé, e quindi questa è una soluzione appropriata. Ad ogni modo, felice di aiutarti Dan! – danr