functor (Token : Sig.Camlp4Token->
  sig
    type t = (string * Token.Loc.t) Stream.t * (string * Token.Loc.t) Queue.t
    val mk : unit -> 'Stream.t * 'Queue.t
    val filter :
      'a * (string * 'b) Queue.t ->
      (Camlp4.Sig.camlp4_token * 'b) Stream.t ->
      (Camlp4.Sig.camlp4_token * 'b) Stream.t
    val take_list : 'a * 'Queue.t -> 'b list
    val take_stream : 'a * '-> 'a
    val define :
      Token.Filter.t -> 'a * (string * Token.Loc.t) Queue.t -> unit
  end