Can you please make this a case class:

```scala
case class FieldAndDefault[T](name: String, defaultValue: Option[() => T])
```

This way you should be able to remove casting below.