I\'m curious about the \'undefined\' value in Haskell. Its interesting because you can put it just about anywhere, and Haskell will be happy. The following are all a-ok
There are two separated things to note about undefined:
For the second, GHC commentary clearly says:
The representation of ⊥ must be a pointer: it is an object that when evaluated throws an exception or enters an infinite loop.
For more details you might want to read the paper Spinless Tagless G-Machine.