@SuppressWarnings("unchecked")
    private static <S> Supplier<S> constructorOf(Class<S> impl) {
        try {
            return (Supplier<S>) Unchecked.supplier(MethodHandles.lookup().findConstructor(impl, MethodType.methodType(void.class))::invoke);
        } catch (ReflectiveOperationException e) {
            throw new IllegalArgumentException("Couldn't find public constructor of " + impl, e);
        }
    }
Register bean arguments and row mapping for an {@code Modifiable*} value class, using a supplied implementation and constructor.
@param spec the specification interface or abstract class
@param impl the modifiable class
@param constructor a supplier of new Modifiable instances
@param <S> the specification class
@param <M> the modifiable class
@return a plugin that configures type mapping for the given class
core/src/main/java/org/jdbi/v3/core/mapper/immutables/JdbiImmutables.java