aeson has an extremely nice api. it's very easy to write ToJSON/FromJSON instances manually, and its generics machinery is great. i think there should be a library written on top of this which offers a similar experience. then i wouldn't have a reason to use aeson most of the time.