История изменений
Исправление Miguel, (текущая версия) :
При этом если бы source мог возвращать значения и преждевременно закрывать весь downstream с своим значением, то разница бы была, а так он может только закрыть downstream и он уже сам что-то вернет.
Ну дык Source-то может быть с любой монадой. Например, это может быть Source (EitherT SomeException IO) o. Если мы спарим его с Sink-ом, который умеет сворачивать вход, не загрязняя память, то, по идее, должны получить вменяемый результат (надо будет попробовать, кстати). Соответственно, так как ConduitM - инстанс MonadTrans, Source сможет закрыть downstream любым действием из EitherT SomeException IO () - например, Left чтототам.
Исходная версия Miguel, :
При этом если бы source мог возвращать значения и преждевременно закрывать весь downstream с своим значением, то разница бы была, а так он может только закрыть downstream и он уже сам что-то вернет.
Ну дык Source-то может быть с любой монадой. Например, это может быть Source (EitherT SomeException IO) o. Если мы спарим его с Sink-ом, который умеет сворачивать вход, не загрязняя память, то, по идее, должны получить вменяемый результат (надо будет попробовать, кстати).