Derive the Functor instances for Event, Source, and Message