Haskell equality table

True False 1 :: Int 0 :: Int -1 :: Int 1 :: Double 0 :: Double -1 :: Double Infinity -Infinity NaN "True" "False" "1" "0" "-1" "" [] [[]] [0 :: Int] [1 :: Int]
True
False
1 :: Int
0 :: Int
-1 :: Int
1 :: Double
0 :: Double
-1 :: Double
Infinity
-Infinity
NaN
"True"
"False"
"1"
"0"
"-1"
""
[]
[[]]
[0 :: Int]
[1 :: Int]

Legend

x == y ↠ True
x == y ↠ False
Type error (mismatched types)
Type error (ambiguous type, requires explicit type annotation, True once ambiguity is resolved)
Type error (ambiguous type, requires explicit type annotation, False once ambiguity is resolved)

Explanation of special cases