extern "C" {
    int printf( const char *, ... );
}

forall( type T | { int ?<?( T, T ); } )
T min( const T t1, const T t2 ) {
    return t1 < t2 ? t1 : t2;
}

int main() {
    char c;
    c = min( 'a', 'z' );
    printf( "minimum %d\n", c );
    int i;
    i = min( 4, 3 );
    printf( "minimum %d\n", min( 4, 3 ) );
    float f;
    f = min( 4.0, 3.1 );
    printf( "minimum %g\n", f );
    double d;
    d = min( 4.0, 3.2 );
    printf( "minimum %g\n", d );
}

// Local Variables: //
// compile-command: "../../bin/cfa min.c" //
// End: //
