Added support for default messages. Default messages can be created by importing Data.Default.Generics and doing (def :: <message type>).