Null-tracking, or the difference between union and sum types