we should not mix implicit and non implicit parameters.  Can you give an example of calling this without the default reducers?

I think it will look like:
```.distict(Ordering[T], 20)``` which looks a bit ugly to me.

I'd rather something like:
```scala
def distinctWithReducers(reducers: Int)(implicit ord: Ordering[_ >: T]): TypedPipe[T]
final def distinct(implicit ord: Ordering[_ >: T]): TypedPipe[T] = distinctWithReducers(-1)
```