int huge (int n, forall (type T) T (*f) (T)) { if (n <= 0) return f(0); else return huge (n-1, f(f)); }