But unfortunately, many ResultSet operations can throw SQLException. So we created a `ConsumerE<T, E extends Exception>` to use in such cases, so that we can allow some lambdas to throw exceptions where it is sensible (InterruptedException, SQLException, and IOException being the major culprits).
Pretty soon we ended up with FunctionE, BiFunctionE, and so on.
At the same time, we found a need for more interfaces, such as ObjIntFunction<T, R>, that are not provided by JDK 8.
Rather than continuing to implement these on an as-needed basis, I decided to just solve the problem once-and-for-all by creating this library.