If both arguments have cycles, like if you're trying to compare doubly-linked lists, dequal goes into an infinite loop. repro: ```ts const a: any = {}, b: any = {}; a.next = b; b.previous = a; const c: any = {}, d: any = {}; c.next = d; d.previous = c; dequal(a, c); ```