Susan Potter
###

Functional Programming


2020-09
Snippet

No Subtyping in PureScript: Row Polymorphism Instead

PureScript has no subtyping. Data constructors are not subtypes; they are functions that build values of a single type. When you need to share structure across types, row polymorphism provides a more …

2020-08
Software

Algebraic Data Types in TypeScript

Note: the code for the TypeScript (to help you follow along) is available here: Encoding Algebraic Data Types in TypeScript code Background Recently I've been reviewing TypeScript code at work. A …

2020-08
Software

Algebraic Data Types: For the math(s) inclined

Unlock the mathematical elegance of algebraic data types (ADTs) and revolutionize your understanding of data modeling! Discover how algebraic principles can determine the cardinality of ADTs, allowing …

2020-08
Talk

Thinking in Properties (and Beyond), Testing edition

Slide deck from conference talk discussing how property-based testing offers a launchpad to discover and practice thinking in properties in your software development activities to test your software …

2020-06
Software

Experience report deploying PureScript to AWS Serverless (Lambda)

In this blog post, an experienced software engineer shares their successful deployment of a pure functional serverless function to AWS using PureScript. They spent around $15 per day on API Gateway …

2019-06
Talk

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 …

2018-10
Snippet

Profunctors: The Machinery Behind Optics

Profunctors are the abstraction that makes lenses, prisms, and other optics composable. This article builds intuition for profunctors from first principles, showing how they generalize the familiar …

2018-03
Talk

Functional Operations (Functional Programming at Comcast Labs Connect)

Maintaining configurations for different nodes and cloud resources in a [micro]service architecture has been an absolute nightmare in the past. The separation between CI/CD environments and production …

2016-10
Talk

Functional and Reactive Operations

If we were starting greenfield development of a service or web application today we would likely employ a number of practices and design choices that are known to optimise application responsiveness, …

2016-09
Talk

Put a Type On It: Idris Types as Propositions

Note from a talk I gave at Strangeloop showing how Curry-Howard can be applied to structuring types to represent logical propositions using Idris as the teaching language.