Alexander Granin

Haskell Software Architect, Haskell Consultant, author, researcher, speaker.

Author of the book “Functional Design and Architecture".

I’m researching the Software Design discipline in Functional Programming. My goal is to create a comprehensive methodology on how to build real software in Haskell and thus enable a wider Haskell’s adoption in industry.

I’m an experienced Haskell and C++ developer with more than 13 year of experience.

I’m talking about Software Design, Functional C++, Haskell. I’m providing new ideas and showing new ways of thinking about writing applications. The ideas I’m presenting in my book and in my talks are tested in real production. I created several technologies and showcase projects to demonstrate different aspects of software engineering using different approaches.

Concurrent applications with Free monads and STM

I’m often asked why I love Free monads so much while they are too complicated, slow, inefficient, inconvenient. But I’d say Free monads are suffering from wrong rumors, and I got many proofs that this approach is the best for real world development. Why? Because it resembles an important idea of Software Design: a proper Inversion of Control that you can use to build good applications. By saying ‚proper I mean: a full analogue of OOP interfaces in a functional setting, without any compromises as other approaches have.

In this talk I’ll touch another theme: how to write concurrent applications using Free monads, STM, and why we should do this. I’ll present several examples based on the Hydra and Node frameworks: a labyrinth game, a web service, a distributed application. We’ll talk about eDSLs for interacting with the command line, about concurrent application architectures and what STM offers us to make our concurrent applications simpler. We’ll also talk about some myths walking around Free monads.