// './cfa square.c' extern "C" { int printf( const char *fmt, ... ); } context has_star( type T ) { T ?*?( T, T ); }; int ?*?( int, int ); 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 ) ); }