An uninhabited type.

This is useful when interfaces require that a type be specified, but the implementer knows this type will not be used in their implementation of the interface.

For instance, Async.Std.Rpc.Pipe_rpc.t is parameterized by an error type, but a user may want to define a Pipe RPC that can't fail.

type t = Nothing0.t
val unreachable_code : t -> 'a
Because there are no values of type Nothing.t, a piece of code that has a value of type Nothing.t must be unreachable. In such an unreachable piece of code, one can use unreachable_code to give the code whatever type one needs. For example:
      let f (r : (int, Nothing.t) Result.t) : int =
        match r with
        | Ok i -> i
        | Error n -> Nothing.unreachable_code n
      ;;
include Identifiable.S with type t := t
It may seem weird that this is identifiable, but we're just trying to anticipate all the contexts in which people may need this. It would be a crying shame if you had some variant type involving Nothing.t that you wished to make identifiable, but were prevented for lack of Identifiable.S here.

Obviously, of_string and t_of_sexp will raise an exception.

module Stable : sig .. end
module V1 : sig .. end
include sig .. end with type __pa_nonrec_0 := t
type __pa_nonrec_0 = t
type t = __pa_nonrec_0
val compare : t -> t -> int
val bin_t : t Bin_prot.Type_class.t
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (int -> t) Bin_prot.Read.reader
val bin_reader_t : t Bin_prot.Type_class.reader
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_writer_t : t Bin_prot.Type_class.writer
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t