Susan Potter

Haskell :: Functional programming language with strong static typing

software

A Haskell view of functional programming ("effectful")

This article explores Haskell’s techniques for isolating side effects, starting with the IO monad, which encapsulates impure code to enable reasoning about pure portions. It explains IO’s benefits like sequencing effects and isolating them from infecting other code. The article then provides a high-level overview of more advanced Haskell effect systems including MTL-style monad transformers and freer algebraic effects, comparing their strengths and weaknesses …

software

A Haskell view of functional programming (well-typedness)

Dive into an educational journey exploring the power of strong static typing, enforcing domain-specific constraints, and ensuring the validity of values. Uncover how well-typedness enhances code reliability, maintainability, and understandability, while enabling robust composability and scalability.

talks

From Zero to Haskell: Lessons Learned (ZuriHac)

Embarking on functional programming within an established software organization is a daunting task, but this talk reveals some secrets and wisdom acquired from experience trying to build a team this way. Discover how to manage existing systems while incorporating a functional mindset and building expertise. Learn approaches to reduce risks, foster a learning culture, and transition from ad-hoc workarounds to a profound understanding of the problem domain. Join us on this …

snippets

Profunctor exploration in less than 100 lines of Haskell

A snippet showing the design space around profunctors using Haskell as the teaching language Includes sighting of Strong, Choice, Cartesian and more profunctors.

software

Parametricity: A Practitioners Guide

This post is a quick and handy guide that introduces the concept of parametricity and explains how it can be leveraged in software development. The article aims to target industry practitioners familiar with mainstream languages and methods, providing them with a practical understanding of parametricity and its benefits. It discusses the prerequisites and terminology related to parametricity, including the need for pure functions, total correctness, and support for parametric …

talks

Functional Algebra: Monoids Applied

In functional programming, words from Category Theory are thrown around, but how useful are they really? This session looks at applications of monoids specifically and how using their algebraic properties offers a solid foundation of reasoning in many types of business domains and reduces developer error as computational context complexity increases. This will provide a tiny peak at Category Theory's practical uses in software development and modeling. Code examples will …