Module Parser.Parser_state

type state
type !'a t = state -> state * 'a
val get : state t
val put : state -> unit t
val modify : (state -> state) -> unit t
val run : 'a t -> state -> state * 'a
val eval : 'a t -> state -> 'a
val exec : 'a t -> state -> state
val traverse_tuple2 : ('a1 -> 'b1 t) -> ('a2 -> 'b2 t) -> ('a1 * 'a2) -> ('b1 * 'b2) t
val traverse_tuple3 : ('a1 -> 'b1 t) -> ('a2 -> 'b2 t) -> ('a3 -> 'b3 t) -> ('a1 * 'a2 * 'a3) -> ('b1 * 'b2 * 'b3) t
val traverse_list : ('a -> 'b t) -> 'a Support.List.t -> 'b Support.List.t t
val traverse_list1 : ('a -> 'b t) -> 'a Support.List1.t -> 'b Support.List1.t t
val traverse_list2 : ('a -> 'b t) -> 'a Support.List2.t -> 'b Support.List2.t t
val traverse_list_void : ('a -> 'b t) -> 'a Support.List.t -> Stdlib.Unit.t t
val traverse_list1_void : ('a -> 'b t) -> 'a Support.List1.t -> Stdlib.Unit.t t
val traverse_list2_void : ('a -> 'b t) -> 'a Support.List2.t -> Stdlib.Unit.t t
val traverse_reverse_list : ('a -> 'b t) -> 'a Support.List.t -> 'b Support.List.t t
val traverse_reverse_list1 : ('a -> 'b t) -> 'a Support.List1.t -> 'b Support.List1.t t
val traverse_reverse_list2 : ('a -> 'b t) -> 'a Support.List2.t -> 'b Support.List2.t t
val traverse_reverse_list_void : ('a -> 'b t) -> 'a Support.List.t -> Stdlib.Unit.t t
val traverse_reverse_list1_void : ('a -> 'b t) -> 'a Support.List1.t -> Stdlib.Unit.t t
val traverse_reverse_list2_void : ('a -> 'b t) -> 'a Support.List2.t -> Stdlib.Unit.t t
val traverse_option : ('a -> 'b t) -> 'a Support.Option.t -> 'b Support.Option.t t
val traverse_option_void : ('a -> 'b t) -> 'a Support.Option.t -> Stdlib.Unit.t t
val seq_list : 'a t Support.List.t -> 'a Support.List.t t
val seq_list1 : 'a t Support.List1.t -> 'a Support.List1.t t
val seq_list_void : unit t list -> unit t
val return : 'a -> 'a t
val bind : ('a -> 'b t) -> 'a t -> 'b t
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
val compose : ('b -> 'c t) -> ('a -> 'b t) -> 'a -> 'c t
val (>=>) : ('a -> 'b t) -> ('b -> 'c t) -> 'a -> 'c t
val (let*) : 'a t -> ('a -> 'b t) -> 'b t
val (and*) : 'a t -> 'b t -> ('a * 'b) t
val map : ('a -> 'b) -> 'a t -> 'b t
val ($>) : 'a t -> ('a -> 'b) -> 'b t
val (let+) : 'a t -> ('a -> 'b) -> 'b t
val (and+) : 'a t -> 'b t -> ('a * 'b) t
val ap : 'a t -> ('a -> 'b) t -> 'b t
val (<&>) : ('a -> 'b) t -> 'a t -> 'b t
val ap_first : 'b t -> 'a t -> 'a t
val (<&) : 'a t -> 'b t -> 'a t
val ap_second : 'b t -> 'a t -> 'b t
val (&>) : 'a t -> 'b t -> 'b t
val seq2 : 'a1 t -> 'a2 t -> ('a1 * 'a2) t
val seq3 : 'a1 t -> 'a2 t -> 'a3 t -> ('a1 * 'a2 * 'a3) t
val seq4 : 'a1 t -> 'a2 t -> 'a3 t -> 'a4 t -> ('a1 * 'a2 * 'a3 * 'a4) t
val seq5 : 'a1 t -> 'a2 t -> 'a3 t -> 'a4 t -> 'a5 t -> ('a1 * 'a2 * 'a3 * 'a4 * 'a5) t
val lift2 : ('a1 -> 'a2 -> 'r) -> 'a1 t -> 'a2 t -> 'r t
val lift3 : ('a1 -> 'a2 -> 'a3 -> 'r) -> 'a1 t -> 'a2 t -> 'a3 t -> 'r t
val lift4 : ('a1 -> 'a2 -> 'a3 -> 'a4 -> 'r) -> 'a1 t -> 'a2 t -> 'a3 t -> 'a4 t -> 'r t
val lift5 : ('a1 -> 'a2 -> 'a3 -> 'a4 -> 'a5 -> 'r) -> 'a1 t -> 'a2 t -> 'a3 t -> 'a4 t -> 'a5 t -> 'r t
val replicate : int -> 'a t -> 'a list t
type token = Located_token.t
val peek : token option t
val observe : token option t
val accept : unit t
val insert : token -> unit t
type location = Located_token.location
val next_location : location option t
val previous_location : location option t
val enable_backtracking : unit t
val disable_backtracking : unit t
val can_backtrack : bool t
val allow_backtracking_on_error : ('a, 'e) Stdlib.result t -> ('a, 'e) Stdlib.result t
val with_checkpoint : ('a, 'e) Stdlib.result t -> ('a, [> `Backtracked of 'e | `Did_not_backtrack of 'e ]) Stdlib.result t
val initial : ?initial_location:location -> token Support.Seq.t -> state