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