runtimeTypes.string.validate(input, context).chain(stringInput => { const momentValue = moment(stringInput); return momentValue.isValid() ? runtimeTypes.success(momentValue.valueOf()) : runtimeTypes.failure(stringInput, context); }),
baseType.validate(u, c).chain(val => { const valid = validators.every(v => v(val)) return valid ? t.success(val) : t.failure(u, c, mkMessage(val)) }),