shapeless
Provides default values of case class-like types, as a HList of options.
Provides default values of case class-like types, as a record.