So far I was able to get around this error by manually specifying error types: sequenceS(E.either as E.as apply.Apply2C< 'Either', ValidateEmailError | ValidatePasswordError)({ email: validateEmail(email), password: validatePassword(password), }) But it still is not pretty.