scalaz/scalaz — comment on commit 76f647ee8ebbb7cc0429447d027dcfb737f7247c
File: iteratee/src/main/scala/scalaz/iteratee/StepT.scala line 8
By nuttycom:

I was thinking that in the case that a control signal allows the iteratee to continue, the next iteratee to use to continue with needs to be a member of the control signal type.

What I don't like about putting the control signal in with the continuation function is that this implementation basically says that whenever you create an iteratee, you have to include the control signal and it has to be passed around, even if it's always None. If you use the error channel for this purpose, then the vast majority of iteratees can be universally quantified in the type of the control signal, and only those specifically designed to work with an enumerator that exposes a particular signal set need to be aware of that type. Furthermore, unless you want to do something like choose a fixed signal set up front, enumerators will need to be additionally parameterized with the type of the control signal that they support.

I can see where you're coming from, though. We should grab a hangout some time to discuss.