`type t`````
`include sig ... end`
`val sexp_of_t : t ‑> Base.Sexp.t`
`type envelope``= t```
`include sig ... end`
`val sexp_of_envelope : envelope ‑> Base.Sexp.t`
`include Core.Comparable.S_plain with type t := t`
`include Core_kernel__.Comparable_intf.S_common`
`include Base.Comparable.S`
`include Base__.Comparable_intf.Polymorphic_compare`
`include Base.Comparisons.Infix`
`type t`````
`val (>=) : t ‑> t ‑> bool`
`val (<=) : t ‑> t ‑> bool`
`val (=) : t ‑> t ‑> bool`
`val (>) : t ‑> t ‑> bool`
`val (<) : t ‑> t ‑> bool`
`val (<>) : t ‑> t ‑> bool`
`val equal : t ‑> t ‑> bool`
`val compare : t ‑> t ‑> int`

`compare t1 t2` returns 0 if `t1` is equal to `t2`, a negative integer if `t1` is less than `t2`, and a positive integer if `t1` is greater than `t2`.

`val min : t ‑> t ‑> t`
`val max : t ‑> t ‑> t`
`val ascending : t ‑> t ‑> int`

`ascending` is identical to `compare`. `descending x y = ascending y x`. These are intended to be mnemonic when used like `List.sort ~compare:ascending` and `List.sort ~cmp:descending`, since they cause the list to be sorted in ascending or descending order, respectively.

`val descending : t ‑> t ‑> int`
`val between : t ‑> low:t ‑> high:t ‑> bool`

`between t ~low ~high` means `low <= t <= high`

`val clamp_exn : t ‑> min:t ‑> max:t ‑> t`

`clamp_exn t ~min ~max` returns `t'`, the closest value to `t` such that `between t' ~low:min ~high:max` is true.

Raises if `not (min <= max)`.

`val clamp : t ‑> min:t ‑> max:t ‑> t Base.Or_error.t`
`include Base.Comparator.S with type t := t`
`type t`````
`type comparator_witness`````
`val comparator : (t, comparator_witness) Base.Comparator.comparator`
`include Base__.Comparable_intf.Validate with type t := t`
`type t`````
`val validate_lbound : min:t Base.Maybe_bound.t ‑> t Base.Validate.check`
`val validate_ubound : max:t Base.Maybe_bound.t ‑> t Base.Validate.check`
`val validate_bound : min:t Base.Maybe_bound.t ‑> max:t Base.Maybe_bound.t ‑> t Base.Validate.check`
`module Replace_polymorphic_compare : Core_kernel__.Comparable_intf.Polymorphic_compare with type t := t`
`module Map : Core_kernel.Map.S_plain with type Key.t = t with type Key.comparator_witness = comparator_witness`
`module Set : Core_kernel.Set.S_plain with type Elt.t = t with type Elt.comparator_witness = comparator_witness`
`include Core.Hashable.S_plain with type t := t`
`include Core.Hashable.Common`
`type t`````
`include sig ... end`
`val compare : t ‑> t ‑> Core_kernel__.Import.int`
`val hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.state`
`val hash : t ‑> Base.Hash.hash_value`
`val hashable : t Core_kernel.Hashtbl.Hashable.t`
`module Table : Core_kernel.Hashtbl.S_plain with type key = t`
`module Hash_set : Core_kernel.Hash_set.S_plain with type elt = t`
`module Hash_queue : Core_kernel.Hash_queue.S with type Key.t = t`
`include Async_smtp_types__.Envelope_container.With_headers with type t := t`
`type t`````
`val headers : t ‑> Email_message.Email_headers.t`
`val last_header : ?⁠whitespace:Email_message.Email_headers.Whitespace.t ‑> t ‑> Email_message.Email_headers.Name.t ‑> Email_message.Email_headers.Value.t option`
`val find_all_headers : ?⁠whitespace:Email_message.Email_headers.Whitespace.t ‑> t ‑> Email_message.Email_headers.Name.t ‑> Email_message.Email_headers.Value.t list`
`val add_header : ?⁠whitespace:Email_message.Email_headers.Whitespace.t ‑> t ‑> name:string ‑> value:string ‑> t`
`val add_headers : ?⁠whitespace:Email_message.Email_headers.Whitespace.t ‑> t ‑> (string * string) list ‑> t`
`val set_header : ?⁠whitespace:Email_message.Email_headers.Whitespace.t ‑> t ‑> name:string ‑> value:string ‑> t`
`val add_header_at_bottom : ?⁠whitespace:Email_message.Email_headers.Whitespace.t ‑> t ‑> name:string ‑> value:string ‑> t`
`val add_headers_at_bottom : ?⁠whitespace:Email_message.Email_headers.Whitespace.t ‑> t ‑> (string * string) list ‑> t`
`val set_headers : t ‑> Email_message.Email_headers.t ‑> t`
`val set_header_at_bottom : ?⁠whitespace:Email_message.Email_headers.Whitespace.t ‑> t ‑> name:string ‑> value:string ‑> t`
`val smash_and_add_header : ?⁠whitespace:Email_message.Email_headers.Whitespace.t ‑> t ‑> name:string ‑> value:string ‑> t`
`val modify_headers : t ‑> f:(Email_message.Email_headers.t ‑> Email_message.Email_headers.t) ‑> t`
`val filter_headers : ?⁠whitespace:Email_message.Email_headers.Whitespace.t ‑> t ‑> f:(name:Email_message.Email_headers.Name.t ‑> value:Email_message.Email_headers.Value.t ‑> bool) ‑> t`
`val map_headers : ?⁠whitespace:Email_message.Email_headers.Whitespace.t ‑> t ‑> f:(name:Email_message.Email_headers.Name.t ‑> value:Email_message.Email_headers.Value.t ‑> string) ‑> t`
`include Async_smtp_types__.Envelope_container.With_info with type t := t`
`type t`````
`type envelope_info`````
`val sender : t ‑> Async_smtp_types__.Sender.t`
`val sender_args : t ‑> Async_smtp_types__.Sender_argument.t list`
`val string_sender : t ‑> string`
`val recipients : t ‑> Email_message.Email_address.t list`
`val rejected_recipients : t ‑> Email_message.Email_address.t list`
`val string_recipients : t ‑> string list`
`val route : t ‑> string option`
`val id : t ‑> Async_smtp_types__.Envelope_id.t`
`val info : t ‑> envelope_info`
`val create : (email:Email_message.Email.t ‑> unit ‑> t) Async_smtp_types__.Envelope_info.create`
`val create' : info:Async_smtp_types__.Envelope_info.t ‑> email:Email_message.Email.t ‑> t`
`val info : t ‑> Async_smtp_types__.Envelope_info.t`
`val email : t ‑> Email_message.Email.t`
`val set : (?⁠email:Email_message.Email.t ‑> t ‑> unit ‑> t) Async_smtp_types__.Envelope_info.set`
`val set' : t ‑> ?⁠info:Async_smtp_types__.Envelope_info.t ‑> ?⁠email:Email_message.Email.t ‑> unit ‑> t`
`val of_email : Email_message.Email.t ‑> t Core.Or_error.t`
`val modify_email : t ‑> f:(Email_message.Email.t ‑> Email_message.Email.t) ‑> t`
`val of_bodiless : Async_smtp_types__.Envelope_bodiless.t ‑> Email_message.Email.Raw_content.t ‑> t`
`val split_bodiless : t ‑> Async_smtp_types__.Envelope_bodiless.t * Email_message.Email.Raw_content.t`
`val with_bodiless : t ‑> (Async_smtp_types__.Envelope_bodiless.t ‑> Async_smtp_types__.Envelope_bodiless.t) ‑> t`
`module Stable : sig ... end`