Usage of appropriate high-level abstractions is very important for development of reliable and maintainable programs. Abstractions can be more effective if applied at the level of language syntax. To achieve this goal, analysis of programs based on the syntax is needed. This paper presents Haskell Syntax Analyzer tool that can be used for analysis of Haskell programs from the syntactic perspective. It allows to retrieve derivation trees of Haskell programs, visualize them and perform their statistical analysis. We also propose approach for recognition of recurring patterns in programs that can be used as a basis for automated introduction of abstractions into the language.