sig
  type ('a, 'b, 'c) t =
      'Gramext.g_entry ->
      'Gramext.g_symbol list -> ('Stream.t -> 'b) -> 'Stream.t -> 'c
  type ('a, 'b, 'c) tsep =
      'Gramext.g_entry ->
      'Gramext.g_symbol list ->
      ('Stream.t -> 'b) -> ('Stream.t -> unit) -> 'Stream.t -> 'c
  val sfold0 : ('-> '-> 'b) -> '-> ('c, 'a, 'b) Extfold.t
  val sfold1 : ('-> '-> 'b) -> '-> ('c, 'a, 'b) Extfold.t
  val sfold0sep : ('-> '-> 'b) -> '-> ('c, 'a, 'b) Extfold.tsep
  val sfold1sep : ('-> '-> 'b) -> '-> ('c, 'a, 'b) Extfold.tsep
  val slist0 : ('a, 'b, 'b list) Extfold.t
  val slist1 : ('a, 'b, 'b list) Extfold.t
  val slist0sep : ('a, 'b, 'b list) Extfold.tsep
  val slist1sep : ('a, 'b, 'b list) Extfold.tsep
  val sopt : ('a, 'b, 'b option) Extfold.t
end