# Module Std_kernel.Nothing

    module Nothing: Nothing

    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

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