Il pacchetto void sostiene di fornire un tipo di inabitabili chiamato Void
, che viene definita come segue -Tipo inutile giocoleria per definire Data.Void (pacchetto "void" su Hackage)?
newtype Void = Void Void
Come è questa definizione di meglio che usare qualcosa di più semplice? Dire -
data Void
Se la mia comprensione è corretta, entrambi i tipi di dati contengono solo valori di fondo. Tuttavia, quest'ultimo è molto più facile da capire.
EDIT: Ok, ho capito la risposta di Daniel qui sotto. Tuttavia ho pensato ad un altro modo forse più semplice per farlo rimanendo compatibile con Haskell98. Possiamo utilizzare un tipo di dati Abstract e non esporre alcun costruttore all'utente.
module Data.Void (Void) where
data Void = Void
Ora solo il codice nel modulo Data.Void può costruire un vuoto, tuttavia, poiché sappiamo che non, il tipo di dati Void è effettivamente disabitata.
Questo lavoro o mi manca qualcosa qui?
"Ora solo il codice nel modulo Data.Void può costruire un vuoto" che è un modulo di troppo. – PyRulez
Beh, sì .. Capisco che ora, dopo aver letto [commento di Carl] (http://stackoverflow.com/questions/9261490/unnecessary-type-juggling-to-define-data-void-package-void-on-hackage ? noredirect = 1 # comment11678217_9261699) :) –