Add more type class instances for GHC.Generics

GHC.Generics provides several representation data types that have
obvious instances of various type classes in base, along with various
other types of meta-data (such as associativity and
fixity). Specifically, instances have been added for the following type
classes (where possible):

    - Applicative
    - Data
    - Functor
    - Generic
    - Monad
    - MonadFix
    - MonadPlus
    - Typeable
    - Foldable
    - Traversable
    - Enum
    - Bounded
Remove superfluous whitespace