// "./cfa quad.c" // "./cfa -CFA quad.c > quad_out.c" // "gcc31 -g quad_out.c LibCfa/libcfa.a" extern "C" { #include } forall( type T | { T ?*?( T, T ); } ) T square( T t ) { return t * t; } forall( type U | { U square( U ); } ) U quad( U u ) { return square( square( u ) ); } int main() { int N = 2; printf( "result of quad of %d is %d\n", N, quad( N ) ); }