I mean, in all cases `if let` is for when there's nothing in other constructors that you want to talk about. That'll be every time you match on `Option<T>`, `Result<T, ()>`, or `Result<(), T>`, all of which come up at least occasionally, and will occasionally be other cases.
Edited to add: I don't mean to imply that you should always use `if let` for those cases - that may be but I reserve judgement on it.
Edited to add: I don't mean to imply that you should always use `if let` for those cases - that may be but I reserve judgement on it.