TaskValidation<'leftOk, 'error> -> TaskValidation<'rightOk, 'error> -> TaskValidation<'leftOk * 'rightOk, 'error>
let result = TaskValidation.zip (TaskValidation.ok 1) (TaskValidation.ok 2)
// task { Ok (1, 2) }
let result = TaskValidation.zip (TaskValidation.ok 1) (TaskValidation.error "Bad")
// task { Error [ "Bad" ] }
let result = TaskValidation.zip (TaskValidation.error "Bad1") (TaskValidation.error "Bad2")
// task { Error [ "Bad1"; "Bad2" ] }