it's because tap itself depends on buffer-equal