Paul Chiusano

Functional programming, UX, tech


About my book

My book, Functional Programming in Scala, uses Scala as a vehicle for teaching FP. Read what people are saying about it.

Popular links

Unison: a friendly programming language from the future the worldwide elastic computer (coming soon)
Type systems and UX: an example
CSS is unnecessary

In praise of universal warmth and kindness toward others in online discussions

A little over a month ago, I started an experiment in being “exceedingly polite” to everyone I interacted with online:


The internet has made defensive writers of us all

I was struck by this passage in Steven Pinker’s article about why academics’ writing stinks:


Making overly conservative language evolution a nonproblem

There was a recent thread on the Haskell reddit, sparked by a Neil Mitchell post arguing that various functions in the Haskell Prelude should not be generalized.


A very early demo of semantic program layout

Unison programs are viewed and edited in the browser. The frontend (which does things like code layout) is being written in Elm which talks to a backend (which does things like typechecking) written in Haskell.


Why are we still programming like it's the punchcard era?

Here’s a scenario that’s familiar to most programmers: after making a seemingly minor program change in your text editor / IDE of choice, the compiler spews back at you tens or even hundreds of baffling compile errors. Even if you’ve gotten used to this sort of thing, there’s something a little demoralizing about it. I don’t particularly enjoy sleuthing around to figure out the root cause when the compiler is giving me a trail of seemingly unrelated clues. Compilers are often pretty bad at reporting the root cause of the actual errors.