package dafny;

@FunctionalInterface
public interface Function16<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> {
  public T16 apply(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15);
  @SuppressWarnings({"unchecked", "deprecation"})
  public static <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> dafny.TypeDescriptor<Function16<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>> _typeDescriptor(dafny.TypeDescriptor<T0> t0, dafny.TypeDescriptor<T1> t1, dafny.TypeDescriptor<T2> t2, dafny.TypeDescriptor<T3> t3, dafny.TypeDescriptor<T4> t4, dafny.TypeDescriptor<T5> t5, dafny.TypeDescriptor<T6> t6, dafny.TypeDescriptor<T7> t7, dafny.TypeDescriptor<T8> t8, dafny.TypeDescriptor<T9> t9, dafny.TypeDescriptor<T10> t10, dafny.TypeDescriptor<T11> t11, dafny.TypeDescriptor<T12> t12, dafny.TypeDescriptor<T13> t13, dafny.TypeDescriptor<T14> t14, dafny.TypeDescriptor<T15> t15, dafny.TypeDescriptor<T16> t16) {
    return (dafny.TypeDescriptor<Function16<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>>) (dafny.TypeDescriptor<?>) dafny.TypeDescriptor.reference(Function16.class);}
}
