use precise lists of op()