We should add `@CheckReturnValue` to help hinting that immutable objects are being created so that mutations don't get lost accidentally.