Susan Potter
###

Profunctors

Profunctors sit at the intersection of category theory and practical functional programming, offering powerful abstractions for bidirectional transformations. I write about these concepts from the perspective of someone who has used them in production Haskell and Scala code, not just on whiteboards. These articles aim to make abstract ideas concrete by connecting them to real engineering problems.


2020-10
Software

Profunctors for Practitioners: The API (Part 3)

Part 3 examines the Profunctor typeclass in detail: the dimap operation, its laws, and the Strong and Choice extensions that enable profunctors to work with products and sums. These building blocks …

2020-09
Software

Profunctors for Practitioners: First Intuitions (Part 2)

Part 1 showed paired operations like encode/decode and serialize/deserialize. Part 2 builds the intuition for why these pairs fit together: one direction produces data (covariant), the other consumes …

2020-09
Software

Profunctors for Practitioners: Motivating Examples (Part 1)

Software development involves many paired operations: encoding and decoding, serializing and deserializing, encrypting and decrypting. Profunctors capture this pattern. Part 1 introduces the …