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