example of content negotiation
decided to port the ideas into Haskell