001    package fj;
002    
003    /**
004     * A transformation function of arity-8 from <code>A</code>, <code>B</code>, <code>C</code>,
005     * <code>D</code>, <code>E</code>, <code>F$</code>, <code>G</code> and <code>H</code> to
006     * <code>I</code>. This type can be represented using the Java 7 closure syntax.
007     *
008     * @version %build.number%<br>
009     *          <ul>
010     *          <li>$LastChangedRevision: 5 $</li>
011     *          <li>$LastChangedDate: 2008-12-06 16:49:43 +1000 (Sat, 06 Dec 2008) $</li>
012     *          </ul>
013     */
014    public interface F8<A, B, C, D, E, F$, G, H, I> {
015      /**
016       * Transform <code>A</code>, <code>B</code>, <code>C</code>, <code>D</code>, <code>E</code>,
017       * <code>F$</code>, <code>G</code> and <code>H</code> to <code>I</code>.
018       *
019       * @param a The <code>A</code> to transform.
020       * @param b The <code>B</code> to transform.
021       * @param c The <code>C</code> to transform.
022       * @param d The <code>D</code> to transform.
023       * @param e The <code>E</code> to transform.
024       * @param f The <code>F$</code> to transform.
025       * @param g The <code>G</code> to transform.
026       * @param h The <code>H</code> to transform.
027       * @return The result of the transformation.
028       */
029      I f(A a, B b, C c, D d, E e, F$ f, G g, H h);
030    }