lamblin/Theano — comment on commit 563e4adf3b27501cf787e5743027165fa671343b
File: theano/tensor/elemwise.py line 1680
By lamblin:

I did not want to put that into the base CAReduce class, because it does not apply to several CAReduce operations, like "all", "any", "min", "max", and so on, because they do not need dtype and casting logic.
I thought making a subclass of CAReduce for Sum, Prod and ProdWithoutZeros would be overkill, but it would limit the amount of copy/pasted code, so I can do that if you want.