Scala Summer Camp #3: Programming IO using the MTL style

Krakow Scala User Group
Krakow Scala User Group
Grupa publiczna
Zdjęcie miejsca wydarzenia


Scala Summer Camp is back! It's a series of 3h-long functional programming workshops, held mostly during the summer months.

#3: Programming IO using the MTL style

The objective of the workshop is to get some theoretical and practical overview of the functional approach to IO-based programming. You will learn how to program real applications using Scala, Cats, Cats Effect, Cats MTL, Meow MTL, and others.

During the workshop, we will switch between quick introductions of the core features and longer step-by-step exercises. This will expose you to some features and tools needed to create and maintain production applications.

This event is open for all programmers that know the basics of FP in Scala (immutability, pure functions, higher-order functions, type classes).

- your own laptop,
- git, IntelliJ, JDK 8+, Scala[masked] and sbt 1.3.2 installed.


1. Using IO.
2. Handling errors (Option / Either / EitherT / ApplicativeError / FunctorRaise / MonadError).
3. Handling State (StateT / MonadState).
4. Tagless final & MTL style.
5. Eithers in the business logic.
6. Using mutable reference (Ref).
7. Doing things concurrently (Concurrent / Fiber).
8. Purely functional waiting for values (Deferred).

About your instructor: Michał Płachta (

Polyglot programmer & functional programming enthusiast who loves the human component in software projects. He speaks at conferences, runs workshops & organizes meetups to help others get better at delivering maintainable software.

About Scala Summer Camp

Scala Summer Camp was initiated in 2017. Its main objective is to popularize techniques that lead to more maintainable software. It aims to attract coders at each level of experience.

This year we are planning to host several workshops on different topics. Here's a list of this year's topics:

- Using Functional State in Actors (23.07, 20 participants),
- Refactoring Imperative to Functional (08.08, 18 participants),
- Programming IO using the MTL style (01.10, this workshop),
- Purely Functional Concurrency (planned for October, location needed).

They will all be held during workweek afternoons. Please keep an eye out for invitations, because the number of places is limited.