An `+IDisposable+` object should be disposed (there are some rare exceptions where not disposing is fine, most notably `+Task+`). If a class has an `+IDisposable+` field, there can be two situations:
- The class observes a field that is under the responsibility of another class.
- The class owns the field, and is therefore responsible for calling `+Dispose+` on it.
In the second case, the safest way for the class to ensure `+Dispose+` is called is to call it in its own `+Dispose+` function, and therefore to be itself `+IDisposable+`. A class is considered to own an `+IDisposable+` field resource if it created the object referenced by the field.