Using analyzer, consider: ```dart DartObject obj; List<DartObject> list = obj.toListValue()!; Set<DartObject> list = obj.toSetValue()!; Map<DartObject?, DartObject?> map = obj.toMapValue()!; ``` It feels inconsistent that `toListValue/`toSetValue` have non-nullable elements, but `toMapValue` has nullable ones. Could `toMapValue` be made to return `Map<DartObject, DartObject>?`?