elib is a mess right now.
There is not much there either.

The idea is to diagnose common errors and give
helpful error messages, at the system call level.

Since libc has know idea what you're trying to
achieve, but only libc knows what the actual
problem is, the nest way to do this is to pass an
error context down to libc.  The more common method
of allowing an exception to bubble up has the
disadvantage that the most technical, most
precise part of the error context generally gets lost.

Example:
    flibnitz opens a config file, /usr/local/flibnitz/lib/system.conf
    upon which it depends.

    But there is a typo, a mistake in the install,
    and /usr/local/flibnitz is actually /usr/local/flibntz instead.

    I want a message like:
flibnitz: cannot open system configuration file /usr/local/flibnitz/lib/system.conf -- directory /usr/local/flibnitz does not exist.

    I *don't* want,
    flibnitz: system.conf: no such file or directory

Example Two:
    after the botched install, I did
    cp flibnitz.readme /usr/local/flibnitz
    Since glibnitz wasn't there before, it's now just a plain file.

flibnitz: cannot open system configuration file /usr/local/flibnitz/lib/system.conf -- /usr/local/flibnitz is a regular file, not a directory!

flibnitz --verbose-errors might say something like this:

flibnitz: cannot open system configuration file system.conf --
flibnitz:     expected to find it in /usr/local/flibnitz/lib
flibnitz: directory /usr/local/flibnitz/lib/ does not exist:
flibnitz: /usr/local/flibnitz is a regular file, not a directory

