Library uses exceptions instead of a (silent) error object for error reporting