Мне интересно узнать значение undefined в Haskell. Это интересно, потому что вы можете поместить его где угодно, и Хаскелл будет счастлив. Ниже перечислены все a-ok
[1.0, 2.0, 3.0 , undefined] ::[Float]
[1, 2 ,3 undefined, 102312] :: [Int]
("CATS!", undefined) :: (String, String)
....and many more
Как работает undefined под капотом? Что позволяет иметь данные, относящиеся ко всем типам данных? Можно ли мне определить такое значение, которое я могу повесить повсюду, или это какой-то частный случай?