Fix ApplicativeDo regression #17835
Fixes #17835 (closed). A previous fix for #15344 (closed) made sure that monadic 'fail' is used properly when translating ApplicativeDo. However, it didn't properly account for when a 'fail' will be inserted which resulted in some programs failing with a type error.