Interestingly, if we limit ourselves to pure functions, a ZST corresponds to category-theoretic concept of the terminal object. The latter is defined as such an object (think "type") T that for any other object (think "another type") X there is precisely one arrow (think "function") from X to T [1]. Indeed, if T is a ZST like the empty tuple () then for any type of argument there is precisely one function to T: namely, the one returning T's sole value, ().
Also, Result<T, E> is an example of a variant type corresponding neatly to co-products [2].
Also, Result<T, E> is an example of a variant type corresponding neatly to co-products [2].
[1] http://en.wikipedia.org/wiki/Initial_and_terminal_objects
[2] http://en.wikipedia.org/wiki/Coproduct