@SuppressWarnings("PMD.ConfusingTernary")
    public final <T> void exposeBinding(TypeLiteral<T> type) {
        checkNotNull(type, "type is null");

        Key<T> key = createKey(type);
        bind(key).to(type).in(Scopes.SINGLETON);
        expose(key);
    }
Exposes a binding that is in module scope (without annotations) and binds it using either the annotation or annotation class and then exposes it outside
the module.
guice/src/main/java/org/jdbi/v3/guice/AbstractJdbiDefinitionModule.java