Consider this following Lambda expression:
$$\lambda s. (s \text{ } s )$$
This function applies it's arguement to it's arguement. If this is a valid lambda expression, wouldn't it also be allowed in Haskell if it's based on type theory. What is the obstruction preventing us from doing this?