Dmitrii is a passionate Haskell developer with many years of deep immersion into functional programming. He had been teaching Haskell at ITMO University, and currently, he is working at Standard Chartered Bank on implementing high-performance trading services in Haskell. Veronika is an enthusiastic Haskeller with diverse expertise in functional programming, and multiple years of using Haskell in production.
Together we created Kowainik‚ an open-source organization where we spend our free time to explore new ways to apply functional paradigm for solving real-world problems. We never stop experimenting with new approaches and technologies to come up with the friendlier, more convenient and maintainable design. We combine our CS and Math education with years of using Haskell in production to develop helpful libraries, tools and services, share our experience in tutorials and guides and improve the whole Haskell ecosystem.
We want to share our experience and results of working on a static analysis tool for Haskell projects, which itself is written in Haskell:
Stan is a Haskell Static Analyser. It uses a novel approach to static analysis based on the HIE files compile-time information about Haskell source code gathered and recorded by GHC. The HIE files contain types and detailed information about all identifiers in modules. Usage of the HIE files unleashes the full power of static analysis and opens opportunities for sophisticated and non-trivial checks. Additionally, Stan's approach allows it to provide insightful and robust analysis for projects of a different variety.
In the talk about Stan, we want to share the project goals and implementation details, specifically:
– Stan implementation of Type and AST patterns using the final tagless technique
– Integration with Cabal and collecting of information from multiple sources
– Flexible configuration via TOML or CLI
– Usage of algebraic typeclasses and new abstractions to capture the whole runtime environment
Also, we will demonstrate how Stan works on real-world projects and showcase Stan advantages that could benefit the Haskell ecosystem.