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.
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.
Because there are no values of type
Nothing.t, a piece of code that has a value of
Nothing.t must be unreachable. In such an unreachable piece of code, one can
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 ;;