let push_if_different tok v off = match !blocks with (t,_,_) :: _ when t = tok -> false | _ -> push tok v off; true