private async Task <Validation <Error, Course> > Validate(CreateCourse create) => (await DepartmentMustExist(create), ValidateTitle(create))
public Task <Either <Error, int> > Handle(CreateCourse request, CancellationToken cancellationToken) => Validate(request) .MapT(PersistCourse) .Bind(v => v.ToEitherAsync());