Definedness in Haskell
Idea
Each Haskell term has a certain degree of definedness:
⊥ :: [Int]
is the least-defined, since it contains no information
⊥ : ⊥ :: [Int]
tells that the list is nonempty
3 : ⊥ :: [Int]
tells that the list starts with a three
⊥ : [] :: [Int]
tells that the list has one item
3 : [] :: [Int]
gives the entire list
is the minimal value
Properties