IrType
The IR representation of an input or output field
Allowed
TNullable<T>Option<T>Option<Nullable<T>>Result<T>Result<Nullable<T>>All
Listvariations of the above
Disallowed
Nullable<Option<T>>Nullable<Result<T>>Nullable<Nullable<T>>Option<Option<T>>Option<Result<T>>Result<Option<T>>Result<Result<T>>etc...
We need both Option and Nullable to distinguish ? vs Option in Kotlin (see this Arrow article). In java Option and Nullable might be represented using the same Optional depending on the settings.