FP Ideas for the Curious Kotliner

Functional programming and Kotlin make such a great couple! In this book we explore ideas from the former that will definitely change the way you look and code in Kotlin.

Kotlin lies in a really interesting intersection of programming styles, with functional programming becoming increasingly popular. Functional style is by no means new, so why not take advantage of the decades of ideas, concepts, and patterns from that community? In this book we explore those ideas with a higher impact on Kotlin code, including how to model data in immutable fashion, describing dependencies using contexts and effects, or treating actions as data.

  • Paperback: soon!

Practical Haskell

Get a practical, hands-on introduction to the Haskell language, its libraries and environment, and to the functional programming paradigm that is fast growing in importance in the software industry. This updated edition includes more modern treatment of Haskell's web framework and APIs.

You'll see how functional programming is gathering momentum, allowing you to express yourself in a more concise way, reducing boilerplate, and increasing the safety of your code. Haskell is an elegant and noise-free pure functional language with a long history, having a huge number of library contributors and an active community.

The Book of Monads

In functional programming, at the heart of input/output, failure, state, logic, and much more, lies a powerful abstraction called monad. This book provides a journey from the very first concepts, to the myriad of monads available to programmers, down to the categorical foundations.

Monads are key to unlocking many powerful patterns in functional programming. Alas, many developers struggle at first with the concept and the applications of monads. This books provides a full dive into the subject, including thorough explanations of adjacent concepts such as functors, monad transformers, final tagless, or extensible effects.

Haskell (almost) Standard Libraries

How do I match against a regex? How do I copy a file and handle any exception? These are just a couple of examples of common tasks which require libraries in Haskell. Everybody knows which one you should use... right? This book walks you through the main "standard" libraries in the ecosystem, with lots of examples to get you started.

As opposed to other languages, Haskell's base library is quite slim. However, for many tasks there's usually one community-blessed library. Unraveling that landscape is one of the main thresholds to move from beginner Haskeller to practitioner. This book introduces these "standard libraries", organized by topic. More than 20 chapters provide examples of most common tasks in daily programming, solved using the power of the Haskell ecosystem.



Trading Card Game Workshop


June 2022

Slides and exercises
Part 1: The Legend of DSLs
Part 2: Adventures in IO

A Beginner's Guide to Haskell

Haskell eXchange (Novice Track)

November 2021

Un parser en una docena de líneas

Colombia Lambda

October 2021

All You Wanted to Know About Type Classes

Haskell Love

September 2021

Type classes: de aprendiz a maestro


February 2021

A comparison between Elixir and Haskell


March 2021

Describing Microservices in Modern Haskell

Haskell Symposium

September 2020

Companion to this paper

Miso: Haskell in the Front-End


September 2020

Do more with your types: GADTs and LiquidHaskell

47 Degrees Academy

August 2020

GraphQL 💜 Haskell

Haskell Love

August 2020

Basic optics: lenses, prisms and traversals

47 Degrees Academy

June 2020

The Inner Workings of Mu-Haskell

47 Degrees

December 2019

Going Higher


November 2017

Type Inference in GHC


October 2017

Variables in Haskell


October 2017

Buenos tipos para el desarrollo web

Madrid Haskell

March 2016

Pattern Functors


December 2015

Developing Web Applications with Haskell


December 2015


Actions as Data

Live & Online

November 2022

Func Prog Sweden, with hints to Haskell
Kotlin Dev Day

Context Receivers:
Kotlin's new secret sauce

Advanced Kotlin Dev Day

November 2022

Mapping Right and Wrong


May 2022

Types and Categories

Being Formal Yet Lightweight

DDD Europe

February 2021

A workshop about Alloy

Slides and exercises

A Quick Look at Impredicativity


December 2020

Companion to this paper

Type-Based Formal Verification

47 Degrees

February 2020

Category Theory through Functional Programming

LambdaConf Winter Retreat

February 2017

Part 1

Part 2

Part 3

Immutable Conversations

by 47 Degrees

Casual conversations about important open source libraries with maintainers and contributors

Open Source

Mu-Haskell Haskell

Purely functional framework for building micro services

KopyKat Kotlin

Little utilities for more pleasant immutable data in Kotlin

kind-generics Haskell

Datatype-generic programming for GADTs and higher-kinded types

Arrow Analysis Kotlin

Pre-, post-condition, and invariant checks for your Kotlin code
Part of the Arrow project Elixir

Tool to learn pattern matching for several languages

Inikio Kotlin

Better initial-style DSLs in Kotlin


PhD Thesis

Utrecht University

Type Error Customization for Embedded Domain-Specific Languages


Peer-reviewed articles, hosted at DBLP