Banging around in ghci, I happened to notice that the expression (*) 1 [1..5] apparently has a valid type.
:t (*) 1 [1..5]
(*) 1 [1..5] :: (Enum t, Num [t], Num t) => [t]
Apparently it is a list with several type constraints, including Num [t] which looks impossible to me, like it should give an error.
How is this the type of the expression? Why does ghci's :t command not give an error here?