// './cfa square.c' context has_star( type T ) { T ?*?( T, T ); }; int ?*?( int, int ); extern "C" { void printf( const char *, ... ); } int ?=?( int*, int ); forall( type T | has_star( T ) ) T square( T t ) { return t * t; } int main() { printf( "result of square of 5 is %d\n", square( 5 ) ); }