Module Coding.Parser

module M = Core_kernel.Result
module T : sig ... end
val (>>=) : ( 'a, 'e ) T.t -> ( 'a -> ( 'b, 'e ) T.t ) -> ( 'b, 'e ) T.t
val (>>|) : ( 'a, 'e ) T.t -> ( 'a -> 'b ) -> ( 'b, 'e ) T.t
module Let_syntax : sig ... end
module Monad_infix : sig ... end
val bind : ( 'a, 'e ) T.t -> f:( 'a -> ( 'b, 'e ) T.t ) -> ( 'b, 'e ) T.t
val return : 'a -> ( 'a, 'b ) T.t
val map : ( 'a, 'e ) T.t -> f:( 'a -> 'b ) -> ( 'b, 'e ) T.t
val join : ( ( 'a, 'e ) T.t, 'e ) T.t -> ( 'a, 'e ) T.t
val ignore_m : ( 'a, 'e ) T.t -> ( unit, 'e ) T.t
val all : ( 'a, 'e ) T.t list -> ( 'a list, 'e ) T.t
val all_unit : ( unit, 'e ) T.t list -> ( unit, 'e ) T.t
val run : ( 'a -> ( 'b * 'c list, [> `Expected_eof ] as 'd ) M.t ) -> 'e -> ( 'f, 'd ) M.t
val fail : 'a -> 'b -> ( 'c, 'd ) M.t
val char : Core_kernel.Char.t -> Core_kernel.Char.t list -> ( Core_kernel.Char.t * Core_kernel.Char.t list, [> `Unexpected_char of Core_kernel.Char.t | `Unexpected_eof ] ) M.t
val u8 : 'a list -> ( 'b * 'a list, [> `Unexpected_eof ] ) M.t
val u32 : ( int, [> `Unexpected_eof ] ) T.t
val eof : 'a list -> ( unit * 'b list, [> `Expected_eof ] ) M.t
val take : Core_kernel__Int.t -> 'a list -> ( 'a list * 'a list, [> `Unexpected_eof ] ) M.t
val many : ( char list -> ( 'a * char list, 'b ) Core_kernel._result ) -> ( 'c list, 'd ) T.t

p zero or more times, never fails

val exactly : int -> ( char list -> ( 'a * char list, 'b ) Core_kernel__Result.t ) -> ( 'c list, 'd ) T.t

p exactly n times

val return_res : ( 'a, 'b ) Core_kernel.Result.t -> 'c -> ( 'd * 'e, 'b ) Core_kernel.Result.t