`Arrow`

is more than`Strong`

and`Category`

Several people have claimed that Haskell’s

`Arrow`

class is exactly the intersection of`Category`

and`Strong`

, but this argument ignores the`Arrow`

laws. I demonstrate a type which is has lawful instances of`Strong`

and`Category`

which cannot be made into an`Arrow`

in a consistent way. (2017-07-18)- More on Free Applicative Functors
Since free applicative functors are free, does that mean they are monads over indexed types? Also, can we squeeze out any more performance? (2013-06-12)

- Prompt Monads are Free
A brief look at

`Prompt`

monads, showing that they are free monads, that`Prompt`

is a monad over indexed types, and how it can be used to build composable components. (2013-06-07) - Free Applicative Functors in Haskell
Can we find a way to make an applicative functor for any type constructor? It turns out, methods are already known—but I didn’t know that when I started, so I found my own way. One that turns out to have much better performance. (2013-05-27)

- Parameterized monads vs monads over indexed types
Parameterized monads are a known way of extending the monadic interface. As an alternative, Conor McBride suggested using monads over indexed types. How do these approaches compare? (2012-07-29)

- Syntax highlighting for Haskell in BBEdit 8.0
I’ve put together a Codeless Language Module for BBEdit 8.0 that implements basic syntax highlighting for Haskell. (2004-08-31)

- Category extras
The Haskell package no one demanded! (2004-07-26)