type ('a, 'state) unpack_result = [ | `Ok of 'a * int | 
| `Not_enough_data of 'state * int | 
| `Invalid_data of Core_kernel.Error.t | 
 ]type ('a, 'state) unpack = state:'state -> buf:Core_kernel.Bigstring.t -> pos:int -> len:int -> ('a, 'state) unpack_resultinclude Base.Monad.S with type 'a t := 'a t
t >>= f returns a computation that sequences the computations represented by two monad elements. The resulting computation first does t to yield a value v, and then runs the computation returned by f v.
module Monad_infix : sig ... endval return : 'a -> 'a treturn v returns the (trivial) computation that returns v.
ignore_m t is map t ~f:(fun _ -> ()). ignore_m used to be called ignore, but we decided that was a bad name, because it shadowed the widely used Caml.ignore. Some monads still do let ignore = ignore_m for historical reasons.
module Let_syntax : sig ... endval create_bin_prot : 'a Bin_prot.Type_class.reader -> 'a tcreate_bin_prot reader returns an unpacker that reads the "size-prefixed" bin_prot encoding, in which a value is encoded by first writing the length of the bin_prot data as a 64-bit int, and then writing the data itself.
val bin_blob : Bin_prot.Blob.Opaque.Bigstring.t tReads "size-prefixed" bin-blobs, much like create_bin_prot _, but preserves the size information and doesn't deserialize the blob. This allows deserialization to be deferred and the remainder of the sequence can be unpacked if an individual blob can't be deserialized.
val sexp : Core_kernel.Sexp.t tBeware that when unpacking sexps, one cannot tell if one is at the end of an atom until one hits punctuation. So, one should always feed a space (" ") to a sexp unpack buffer after feeding a batch of complete sexps, to ensure that the final sexp is unpacked.
val char : char tmodule type Equal = sig ... endexpect t equal a returns an unpacker that unpacks using t and then returns `Ok if the unpacked value equals a, or `Invalid_data otherwise.
val expect_char : char -> unit texpect_char is expect char (module Char)
val newline : unit t