Detect more obscure constructs

Even though whole haskell platform is not parsed 100% correctly, most of the obscure features are detected. Three tests are not passing for non-parenthesized non-trivial context, but they seem to be rare.