concrete functor and monad transformers

#58Add Generic and Data instances

When compiling with reasonably recent versions of GHC, it would be really nice to derive Generic instances for all the types, and Data and/or Generic1 instances where applicable.