Wie funktioniert undefined in Haskell?

Ich bin neugierig auf den "undefinierten" Wert in Haskell. Es ist interessant, weil man es fast überall hinstellen kann, und Haskell wird sich freuen. Die folgenden sind alle a-ok

[1.0, 2.0, 3.0 , undefined]  ::[Float]
[1, 2 ,3 undefined, 102312] :: [Int]
("CATS!", undefined)  :: (String, String)
....and many more

Wie funktioniert undefined unter der Haube? Was macht es möglich, Daten zu haben, die von jedem Datentyp sind? Wäre es mir möglich, einen Wert wie diesen zu definieren, den ich überall einsetzen kann, oder ist dies ein Sonderfall?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage