type 'a poly_substring
=
{
s_ : 'a; |
i_ : int; |
j_ : int; |
}
val length : 'a poly_substring -> int
type substring_
= string poly_substring
val mk_substring : string -> string poly_substring
type terminal_parser
= String_position.string_position -> int list
val eps : String_position.string_position -> int list
val re : re:Str.regexp -> String_position.string_position -> int list
val upto_re : re:Str.regexp -> String_position.string_position -> int list
val a : string -> String_position.string_position -> int list
val upto_a : string -> String_position.string_position -> int list
val (**>) : (String_position.string_position -> int list) -> (String_position.string_position -> 'a list) -> String_position.string_position -> 'a list
module X : functor (Y : sig ... end) -> sig ... end