как сделать чтобы не протекало?
есть загрузка файлов на сервер для нескольки схожих бизнесс процессов.
хочется в бизнесс логике превентивно сделать проверки что всё валидно до того как пойдёт качание собсно данных, и потом запускать ещё бизнесс шляпу.
какие варианты кроме
uploadFoo = runUpload doFooThing
uploadBar = runUpload doBarThing
где runUpload :: (PreUpload -> (Uploaded ->m ()) -> m a) -> m a