private async Task <Validation <Error, Enrollment> > Validate(CreateEnrollment create) =>
 (await CourseMustExist(create), await StudentMustExist(create))
 public Task <Validation <Error, int> > Handle(CreateEnrollment request, CancellationToken cancellationToken) =>
 from validation in
 from v in Validate(request)
 select Persist(v)
 from result in validation.Traverse(i => i)     // Await the inner task
 select result;