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

org.scijava.ops.image.adapt.complexLift.FunctionsToComputersAndLift 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 FunctionsToComputersAndLift {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI43FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity4>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity4> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity4> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI43FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity4>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity4> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity4> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI44FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity4>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity4> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity4> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI44FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity4>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity4> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity4> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI51FunctionToComputerAndLiftAfter, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity5>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI51FunctionToComputerAndLiftBefore, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity5>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity5> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI52FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity5>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI52FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity5>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity5> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI53FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity5>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI53FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity5>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity5> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI54FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity5>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI54FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity5>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity5> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI55FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity5>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI55FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity5>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity5> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity5> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI61FunctionToComputerAndLiftAfter, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI61FunctionToComputerAndLiftBefore, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity6> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI62FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI62FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity6> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI63FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI63FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity6> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI64FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI64FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity6> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI65FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI65FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity6> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI66FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI66FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity6>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity6> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity6> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI71FunctionToComputerAndLiftAfter, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI71FunctionToComputerAndLiftBefore, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity7> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI72FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI72FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity7> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI73FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI73FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity7> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI74FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI74FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity7> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI75FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI75FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity7> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI76FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI76FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity7> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI77FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI77FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity7>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity7> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity7> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI81FunctionToComputerAndLiftAfter, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI81FunctionToComputerAndLiftBefore, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI82FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI82FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI83FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI83FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI84FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI84FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI85FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI85FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI86FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI86FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI87FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI87FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI88FunctionToComputerAndLiftAfter, 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, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI88FunctionToComputerAndLiftBefore, 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, Computers.Arity8>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity8> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity8> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI91FunctionToComputerAndLiftAfter, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI91FunctionToComputerAndLiftBefore, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI92FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI92FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI93FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI93FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI94FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI94FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI95FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI95FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI96FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI96FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI97FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI97FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI98FunctionToComputerAndLiftAfter, 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, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI98FunctionToComputerAndLiftBefore, 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, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI99FunctionToComputerAndLiftAfter, 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, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI99FunctionToComputerAndLiftBefore, 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, Computers.Arity9>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity9> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity9> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI101FunctionToComputerAndLiftAfter, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI101FunctionToComputerAndLiftBefore, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI102FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI102FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI103FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI103FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI104FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI104FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI105FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI105FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI106FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI106FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI107FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI107FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI108FunctionToComputerAndLiftAfter, 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, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI108FunctionToComputerAndLiftBefore, 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, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI109FunctionToComputerAndLiftAfter, 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, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI109FunctionToComputerAndLiftBefore, 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, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1010FunctionToComputerAndLiftAfter, 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, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1010FunctionToComputerAndLiftBefore, 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, Computers.Arity10>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity10> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity10> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI111FunctionToComputerAndLiftAfter, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI111FunctionToComputerAndLiftBefore, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI112FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI112FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI113FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI113FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI114FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI114FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI115FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI115FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI116FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI116FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI117FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI117FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI118FunctionToComputerAndLiftAfter, 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, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI118FunctionToComputerAndLiftBefore, 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, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI119FunctionToComputerAndLiftAfter, 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, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI119FunctionToComputerAndLiftBefore, 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, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1110FunctionToComputerAndLiftAfter, 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, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1110FunctionToComputerAndLiftBefore, 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, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1111FunctionToComputerAndLiftAfter, 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, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1111FunctionToComputerAndLiftBefore, 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, Computers.Arity11>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity11> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity11> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI121FunctionToComputerAndLiftAfter, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI121FunctionToComputerAndLiftBefore, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI122FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI122FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI123FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI123FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI124FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI124FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI125FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI125FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI126FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI126FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI127FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI127FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI128FunctionToComputerAndLiftAfter, 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, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI128FunctionToComputerAndLiftBefore, 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, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI129FunctionToComputerAndLiftAfter, 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, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI129FunctionToComputerAndLiftBefore, 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, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1210FunctionToComputerAndLiftAfter, 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, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1210FunctionToComputerAndLiftBefore, 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, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1211FunctionToComputerAndLiftAfter, 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, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1211FunctionToComputerAndLiftBefore, 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, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1212FunctionToComputerAndLiftAfter, 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, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1212FunctionToComputerAndLiftBefore, 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, Computers.Arity12>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity12> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity12> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI131FunctionToComputerAndLiftAfter, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI131FunctionToComputerAndLiftBefore, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI132FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI132FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI133FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI133FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI134FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI134FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI135FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI135FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI136FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI136FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI137FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI137FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI138FunctionToComputerAndLiftAfter, 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, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI138FunctionToComputerAndLiftBefore, 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, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI139FunctionToComputerAndLiftAfter, 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, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI139FunctionToComputerAndLiftBefore, 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, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1310FunctionToComputerAndLiftAfter, 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, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1310FunctionToComputerAndLiftBefore, 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, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1311FunctionToComputerAndLiftAfter, 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, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1311FunctionToComputerAndLiftBefore, 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, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1312FunctionToComputerAndLiftAfter, 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, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1312FunctionToComputerAndLiftBefore, 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, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1313FunctionToComputerAndLiftAfter, 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, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1313FunctionToComputerAndLiftBefore, 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, Computers.Arity13>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity13> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity13> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI141FunctionToComputerAndLiftAfter, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI141FunctionToComputerAndLiftBefore, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI142FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI142FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI143FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI143FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI144FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI144FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI145FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI145FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI146FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI146FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI147FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI147FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI148FunctionToComputerAndLiftAfter, 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, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI148FunctionToComputerAndLiftBefore, 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, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI149FunctionToComputerAndLiftAfter, 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, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI149FunctionToComputerAndLiftBefore, 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, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1410FunctionToComputerAndLiftAfter, 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, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1410FunctionToComputerAndLiftBefore, 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, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1411FunctionToComputerAndLiftAfter, 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, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1411FunctionToComputerAndLiftBefore, 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, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1412FunctionToComputerAndLiftAfter, 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, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1412FunctionToComputerAndLiftBefore, 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, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1413FunctionToComputerAndLiftAfter, 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, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1413FunctionToComputerAndLiftBefore, 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, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1414FunctionToComputerAndLiftAfter, 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, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1414FunctionToComputerAndLiftBefore, 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, Computers.Arity14>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity14> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity14> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI151FunctionToComputerAndLiftAfter, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI151FunctionToComputerAndLiftBefore, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI152FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI152FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI153FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI153FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI154FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI154FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI155FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI155FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI156FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI156FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI157FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI157FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI158FunctionToComputerAndLiftAfter, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI158FunctionToComputerAndLiftBefore, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI159FunctionToComputerAndLiftAfter, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI159FunctionToComputerAndLiftBefore, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1510FunctionToComputerAndLiftAfter, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1510FunctionToComputerAndLiftBefore, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1511FunctionToComputerAndLiftAfter, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1511FunctionToComputerAndLiftBefore, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1512FunctionToComputerAndLiftAfter, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1512FunctionToComputerAndLiftBefore, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1513FunctionToComputerAndLiftAfter, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1513FunctionToComputerAndLiftBefore, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1514FunctionToComputerAndLiftAfter, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1514FunctionToComputerAndLiftBefore, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1515FunctionToComputerAndLiftAfter, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1515FunctionToComputerAndLiftBefore, 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, Computers.Arity15>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity15> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity15> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI161FunctionToComputerAndLiftAfter, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI161FunctionToComputerAndLiftBefore, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI162FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI162FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI163FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI163FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI164FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI164FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI165FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI165FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI166FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI166FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI167FunctionToComputerAndLiftAfter, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI167FunctionToComputerAndLiftBefore, RAII2 extends RandomAccessibleInterval, RAII3 extends RandomAccessibleInterval, RAII4 extends RandomAccessibleInterval, RAII5 extends RandomAccessibleInterval, RAII6 extends RandomAccessibleInterval, RAII7 extends RandomAccessibleInterval, RAIO extends RandomAccessibleInterval>
		 implements Function, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI168FunctionToComputerAndLiftAfter, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI168FunctionToComputerAndLiftBefore, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI169FunctionToComputerAndLiftAfter, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI169FunctionToComputerAndLiftBefore, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1610FunctionToComputerAndLiftAfter, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1610FunctionToComputerAndLiftBefore, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1611FunctionToComputerAndLiftAfter, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1611FunctionToComputerAndLiftBefore, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1612FunctionToComputerAndLiftAfter, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1612FunctionToComputerAndLiftBefore, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1613FunctionToComputerAndLiftAfter, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1613FunctionToComputerAndLiftBefore, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1614FunctionToComputerAndLiftAfter, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1614FunctionToComputerAndLiftBefore, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1615FunctionToComputerAndLiftAfter, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1615FunctionToComputerAndLiftBefore, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Adapts first, then lifts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-100.'
	 */
	 public static class RAI1616FunctionToComputerAndLiftAfter, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> lifter;

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

	/**
	 * Lifting function for mapping Functions Ops to Computers that operate on RandomAccessibleIntervals.
	 * Lifts first, then adapts.
	 *
	 * @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 
	 *            The RAI return type
	 *@implNote op names='engine.adapt', priority='-99.'
	 */
	 public static class RAI1616FunctionToComputerAndLiftBefore, 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, Computers.Arity16>,
			Op
	{
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Functions.Arity16> lifter;
		@OpDependency(name = "engine.adapt", hints={"adaptation.FORBIDDEN"})
		Function, Computers.Arity16> adapter;

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy