Поскольку мы находимся в нетотальном языке, у тебя есть 2 варианта работы с некорректными значениями:
1. Кинуть рантайм ошибку
2. Вернуть опшен (~нуллабл)
Инлайн классы добавляют третий пункт:
3. Принять тип, который исключает некорректные значения
В тотальных языках у тебя, по очевидным причинам, пропадает 1 вариант.
В нетотальных языках 1 вариант возможен, но если у тебя есть 3, непонятно, зачем им пользоваться