### Generic discrete_log

I've been struggling with discrete_log function. The docs say it is the generic BSGS algorithm that is supposed to work in any group. The function works e.g. if I write

discrete_log(Mod(9, 17), Mod(2, 17), 16, operation='*')

However it keeps returning 0 when I put operation='other', e.g.

discrete_log(9, 2, 16, operation='other', op=lambda x, y: (x * y) % 17)

The op function is not even called once.
Is there something that I'm doing wrong or is discrete_log not really generic?