docs: protected Binding bindToInstance(TypeReference bind, String functionName, String instanceExpression,
  			boolean isSingleton, boolean isEager) {
  		final BindKey type;
  		final BindValue value;
  		if (!Strings.isEmpty(functionName) && functionName.startsWith(CONFIGURE_PREFIX)) {
  			final String fname = functionName.substring(CONFIGURE_PREFIX.length());
  			type = new BindKey(Strings.toFirstUpper(fname), null, isSingleton, isEager);
  			final StringConcatenationClient client = new StringConcatenationClient() {
  				@Override
  				protected void appendTo(TargetStringConcatenation builder) {
  					builder.append("binder.bind("); //$NON-NLS-1$
  					builder.append(bind);
  					builder.append(".class).toInstance("); //$NON-NLS-1$
  					builder.append(instanceExpression);
  					builder.append(");"); //$NON-NLS-1$
  				}
  			};
  			value = new BindValue(null, null, false, Collections.singletonList(client));
  		} else {
  			String fname = functionName;
  			if (fname != null && fname.startsWith(BIND_PREFIX)) {
  				fname = fname.substring(BIND_PREFIX.length());
  			}
  			type = new BindKey(Strings.toFirstUpper(fname), bind, isSingleton, isEager);
  			final StringConcatenationClient client = new StringConcatenationClient() {
  				@Override
  				protected void appendTo(TargetStringConcatenation builder) {
  					builder.append(instanceExpression);
  				}
  			};
  			value = new BindValue(client, null, false, Collections.emptyList());
  		}
  		return new Binding(type, value, true, this.name);
  	}