derive Functor, Typeable for Request