Use -Wall
Wibble - missed a case in fmap
Remove unnecessary type variables
Make Config's state type variable existential

Reduces clutter in the API
Distinguish the request and response types

By making the distinction a bug in the retry handling code was discovered!
Merge branch 'neat-types'