All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.scijava.ops.image.adapt.complexLift.ComputersToFunctionsAndLift Maven / Gradle / Ivy

The newest version!
/*-
 * #%L
 * Image processing operations for SciJava Ops.
 * %%
 * Copyright (C) 2014 - 2024 SciJava developers.
 * %%
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 * 
 * 1. Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 * #L%
 */
/*
 * This is autogenerated source code -- DO NOT EDIT. Instead, edit the
 * corresponding template in templates/ and rerun bin/generate.groovy.
 */

package org.scijava.ops.image.adapt.complexLift;

import net.imglib2.RandomAccessibleInterval;
import org.scijava.function.Computers;
import org.scijava.function.Functions;
import org.scijava.ops.spi.Op;
import org.scijava.ops.spi.OpDependency;

import java.util.function.BiFunction;
import java.util.function.Function;

public final class ComputersToFunctionsAndLift {

	private ComputersToFunctionsAndLift() {
		// prevent instantiation of static utility class
	}


	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI11ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, Function>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity1> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Function> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Function apply(Computers.Arity1 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            The second parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI21ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, BiFunction>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity2> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, BiFunction> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public BiFunction apply(Computers.Arity2 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI22ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, BiFunction>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity2> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, BiFunction> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public BiFunction apply(Computers.Arity2 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            The second parameter type
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI31ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity3>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity3> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity3> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity3 apply(Computers.Arity3 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI32ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity3>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity3> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity3> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity3 apply(Computers.Arity3 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI33ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity3>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity3> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity3> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity3 apply(Computers.Arity3 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            The second parameter type
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI41ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity4>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity4> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity4> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity4 apply(Computers.Arity4 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI42ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity4>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity4> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity4> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity4 apply(Computers.Arity4 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI43ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity4>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity4> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity4> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity4 apply(Computers.Arity4 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI44ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity4>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity4> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity4> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity4 apply(Computers.Arity4 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            The second parameter type
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI51ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity5>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity5> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity5 apply(Computers.Arity5 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI52ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity5>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity5> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity5 apply(Computers.Arity5 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI53ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity5>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity5> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity5 apply(Computers.Arity5 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI54ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity5>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity5> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity5 apply(Computers.Arity5 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI55ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity5>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity5> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity5 apply(Computers.Arity5 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            The second parameter type
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI61ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity6> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity6 apply(Computers.Arity6 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI62ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity6> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity6 apply(Computers.Arity6 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI63ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity6> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity6 apply(Computers.Arity6 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI64ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity6> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity6 apply(Computers.Arity6 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI65ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity6> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity6 apply(Computers.Arity6 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI66ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity6> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity6 apply(Computers.Arity6 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            The second parameter type
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI71ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity7> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity7 apply(Computers.Arity7 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI72ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity7> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity7 apply(Computers.Arity7 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI73ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity7> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity7 apply(Computers.Arity7 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI74ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity7> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity7 apply(Computers.Arity7 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI75ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity7> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity7 apply(Computers.Arity7 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI76ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity7> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity7 apply(Computers.Arity7 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI77ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity7> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity7 apply(Computers.Arity7 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            The second parameter type
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI81ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity8 apply(Computers.Arity8 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI82ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity8 apply(Computers.Arity8 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI83ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity8 apply(Computers.Arity8 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI84ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity8 apply(Computers.Arity8 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI85ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity8 apply(Computers.Arity8 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI86ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity8 apply(Computers.Arity8 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI87ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity8 apply(Computers.Arity8 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI88ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity8 apply(Computers.Arity8 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            The second parameter type
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI91ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity9 apply(Computers.Arity9 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI92ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity9 apply(Computers.Arity9 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI93ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity9 apply(Computers.Arity9 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI94ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity9 apply(Computers.Arity9 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI95ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity9 apply(Computers.Arity9 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI96ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity9 apply(Computers.Arity9 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI97ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity9 apply(Computers.Arity9 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI98ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity9 apply(Computers.Arity9 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI99ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity9 apply(Computers.Arity9 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            The second parameter type
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI101ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity10 apply(Computers.Arity10 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI102ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity10 apply(Computers.Arity10 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI103ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity10 apply(Computers.Arity10 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI104ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity10 apply(Computers.Arity10 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI105ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity10 apply(Computers.Arity10 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI106ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity10 apply(Computers.Arity10 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI107ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity10 apply(Computers.Arity10 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI108ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity10 apply(Computers.Arity10 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI109ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity10 apply(Computers.Arity10 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1010ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity10 apply(Computers.Arity10 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            The second parameter type
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI111ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity11 apply(Computers.Arity11 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI112ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity11 apply(Computers.Arity11 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI113ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity11 apply(Computers.Arity11 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI114ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity11 apply(Computers.Arity11 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI115ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity11 apply(Computers.Arity11 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI116ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity11 apply(Computers.Arity11 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI117ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity11 apply(Computers.Arity11 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI118ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity11 apply(Computers.Arity11 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI119ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity11 apply(Computers.Arity11 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1110ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity11 apply(Computers.Arity11 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1111ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity11 apply(Computers.Arity11 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            The second parameter type
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI121ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity12 apply(Computers.Arity12 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI122ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity12 apply(Computers.Arity12 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI123ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity12 apply(Computers.Arity12 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI124ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity12 apply(Computers.Arity12 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI125ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity12 apply(Computers.Arity12 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI126ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity12 apply(Computers.Arity12 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI127ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity12 apply(Computers.Arity12 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI128ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity12 apply(Computers.Arity12 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI129ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity12 apply(Computers.Arity12 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1210ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity12 apply(Computers.Arity12 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1211ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity12 apply(Computers.Arity12 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the twelfth RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1212ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAII12 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity12 apply(Computers.Arity12 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            The second parameter type
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI131ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity13 apply(Computers.Arity13 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI132ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity13 apply(Computers.Arity13 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI133ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity13 apply(Computers.Arity13 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI134ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity13 apply(Computers.Arity13 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI135ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity13 apply(Computers.Arity13 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI136ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity13 apply(Computers.Arity13 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI137ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity13 apply(Computers.Arity13 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI138ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity13 apply(Computers.Arity13 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI139ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity13 apply(Computers.Arity13 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1310ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity13 apply(Computers.Arity13 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1311ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity13 apply(Computers.Arity13 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the twelfth RAI
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1312ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAII12 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity13 apply(Computers.Arity13 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the twelfth RAI
	 * @param 
	 *            Type of the thirteenth RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1313ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAII12 extends RandomAccessibleInterval, RAII13 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity13 apply(Computers.Arity13 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            The second parameter type
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI141ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity14 apply(Computers.Arity14 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI142ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity14 apply(Computers.Arity14 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI143ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity14 apply(Computers.Arity14 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI144ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity14 apply(Computers.Arity14 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI145ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity14 apply(Computers.Arity14 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI146ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity14 apply(Computers.Arity14 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI147ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity14 apply(Computers.Arity14 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI148ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity14 apply(Computers.Arity14 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI149ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity14 apply(Computers.Arity14 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1410ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity14 apply(Computers.Arity14 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1411ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity14 apply(Computers.Arity14 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the twelfth RAI
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1412ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAII12 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity14 apply(Computers.Arity14 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the twelfth RAI
	 * @param 
	 *            Type of the thirteenth RAI
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1413ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAII12 extends RandomAccessibleInterval, RAII13 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity14 apply(Computers.Arity14 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the twelfth RAI
	 * @param 
	 *            Type of the thirteenth RAI
	 * @param 
	 *            Type of the fourteenth RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1414ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAII12 extends RandomAccessibleInterval, RAII13 extends RandomAccessibleInterval, RAII14 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity14 apply(Computers.Arity14 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            The second parameter type
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI151ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity15 apply(Computers.Arity15 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI152ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity15 apply(Computers.Arity15 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI153ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity15 apply(Computers.Arity15 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI154ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity15 apply(Computers.Arity15 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI155ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity15 apply(Computers.Arity15 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI156ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity15 apply(Computers.Arity15 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI157ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity15 apply(Computers.Arity15 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI158ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity15 apply(Computers.Arity15 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI159ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity15 apply(Computers.Arity15 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1510ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity15 apply(Computers.Arity15 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1511ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity15 apply(Computers.Arity15 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the twelfth RAI
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1512ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAII12 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity15 apply(Computers.Arity15 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the twelfth RAI
	 * @param 
	 *            Type of the thirteenth RAI
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1513ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAII12 extends RandomAccessibleInterval, RAII13 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity15 apply(Computers.Arity15 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the twelfth RAI
	 * @param 
	 *            Type of the thirteenth RAI
	 * @param 
	 *            Type of the fourteenth RAI
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1514ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAII12 extends RandomAccessibleInterval, RAII13 extends RandomAccessibleInterval, RAII14 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity15 apply(Computers.Arity15 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the twelfth RAI
	 * @param 
	 *            Type of the thirteenth RAI
	 * @param 
	 *            Type of the fourteenth RAI
	 * @param 
	 *            Type of the fifteenth RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1515ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAII12 extends RandomAccessibleInterval, RAII13 extends RandomAccessibleInterval, RAII14 extends RandomAccessibleInterval, RAII15 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity15 apply(Computers.Arity15 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            The second parameter type
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            The sixteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI161ComputerToFunctionAndLiftViaSource, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            The third parameter type
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            The sixteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI162ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            The fourth parameter type
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            The sixteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI163ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            The fifth parameter type
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            The sixteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI164ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            The sixth parameter type
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            The sixteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI165ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            The seventh parameter type
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            The sixteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI166ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            The eighth parameter type
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            The sixteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI167ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            The ninth parameter type
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            The sixteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI168ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            The tenth parameter type
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            The sixteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI169ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            The eleventh parameter type
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            The sixteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1610ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            The twelfth parameter type
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            The sixteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1611ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the twelfth RAI
	 * @param 
	 *            The thirteenth parameter type
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            The sixteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1612ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAII12 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the twelfth RAI
	 * @param 
	 *            Type of the thirteenth RAI
	 * @param 
	 *            The fourteenth parameter type
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            The sixteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1613ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAII12 extends RandomAccessibleInterval, RAII13 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the twelfth RAI
	 * @param 
	 *            Type of the thirteenth RAI
	 * @param 
	 *            Type of the fourteenth RAI
	 * @param 
	 *            The fifteenth parameter type
	 * @param 
	 *            The sixteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1614ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAII12 extends RandomAccessibleInterval, RAII13 extends RandomAccessibleInterval, RAII14 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the twelfth RAI
	 * @param 
	 *            Type of the thirteenth RAI
	 * @param 
	 *            Type of the fourteenth RAI
	 * @param 
	 *            Type of the fifteenth RAI
	 * @param 
	 *            The sixteenth parameter type
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1615ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAII12 extends RandomAccessibleInterval, RAII13 extends RandomAccessibleInterval, RAII14 extends RandomAccessibleInterval, RAII15 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}

	/**
	 * Lifting function for mapping Computers Ops to Functions that operate on RAIs.
	 *
	 * @param 
	 *            Type of the first RAI
	 * @param 
	 *            Type of the second RAI
	 * @param 
	 *            Type of the third RAI
	 * @param 
	 *            Type of the fourth RAI
	 * @param 
	 *            Type of the fifth RAI
	 * @param 
	 *            Type of the sixth RAI
	 * @param 
	 *            Type of the seventh RAI
	 * @param 
	 *            Type of the eighth RAI
	 * @param 
	 *            Type of the ninth RAI
	 * @param 
	 *            Type of the tenth RAI
	 * @param 
	 *            Type of the eleventh RAI
	 * @param 
	 *            Type of the twelfth RAI
	 * @param 
	 *            Type of the thirteenth RAI
	 * @param 
	 *            Type of the fourteenth RAI
	 * @param 
	 *            Type of the fifteenth RAI
	 * @param 
	 *            Type of the sixteenth RAI
	 * @param 
	 *            Type of the output RAI
	 * @implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1616ComputerToFunctionAndLiftViaSource, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAII8 extends RandomAccessibleInterval, RAII9 extends RandomAccessibleInterval, RAII10 extends RandomAccessibleInterval, RAII11 extends RandomAccessibleInterval, RAII12 extends RandomAccessibleInterval, RAII13 extends RandomAccessibleInterval, RAII14 extends RandomAccessibleInterval, RAII15 extends RandomAccessibleInterval, RAII16 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Functions.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> adapter;

		/**
		 * @param computer the Computer to convert
		 * @return {@code computer} as a Function
		 */
		@Override
		public Functions.Arity16 apply(Computers.Arity16 computer) {
			return adapter.apply(lifter.apply(computer));
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy