USING: kernel sequences math locals ; :: equi_loop ( ret lhs rhs ele idx -- ret lhs rhs ) ret lhs ele + dup rhs = [ nip idx swap ] when rhs ele - ; : equi ( seq -- idx ) [ drop -1 0 ] [ sum ] [ [ equi_loop ] each-index ] tri 2drop ;