@Nonnull
	public static <T1, T2, T3, R> LTriFunction<T1, T2, T3, R> triFunctionFrom(Consumer<LTriFunctionBuilder<T1, T2, T3, R>> buildingFunction) {
		LTriFunctionBuilder builder = new LTriFunctionBuilder();
		buildingFunction.accept(builder);
		return builder.build();
	}
@ Nonnull public static < T1 , T2 , T3 , R > LTriFunction < T1 , T2 , T3 , R > triFunctionFrom ( Consumer < LTriFunctionBuilder < T1 , T2 , T3 , R > > buildingFunction ) { LTriFunctionBuilder builder = new LTriFunctionBuilder ( ) ; buildingFunction . accept ( builder ) ; return builder . build ( ) ; }
One of ways of creating builder. This is possibly the least verbose way where compiler should be able to guess the generic parameters.