Index: examples/Attributes.c
===================================================================
--- examples/Attributes.c	(revision 90152a4860529aff7214be01cd22abd37012cd19)
+++ examples/Attributes.c	(revision 90152a4860529aff7214be01cd22abd37012cd19)
@@ -0,0 +1,92 @@
+// I Compile-time resolution
+// =========================
+// 
+// 1. an isolated name, where the argument is implicitly determined by the result context
+// 
+//    @max
+// 
+// 2. a direct application to a manifest otype
+// 
+//    @max( int )
+// 
+// 3. constraining a otype variable; the application is implicitly performed at the call site as in (2)
+// 
+//    forall( otype T | { T @max( T ); } ) T x( T t );
+// 
+// 
+// II Run-time resolution
+// ======================
+// 
+// 1. an indirect reference, where the argument is implicitly determined by the result context
+// 
+//    attr_var = &@max;
+//    x = (*attr_var);
+// 
+// 2. an indirect application to a manifest otype
+// 
+//    (*attr_var)( int )
+// 
+// 3. a direct application to a otype variable
+// 
+//    @max( T )
+// 
+// Under what circumstances can this be done at compile/link time?
+// 
+// 
+// III Declaration forms
+// =====================
+// 
+// 1. monomorphic with implicit argument
+// 
+//    int @max;
+// 
+// 2. monomorphic with explicit argument
+// 
+//    int @max( int );
+// 
+// 3. polymorphic
+// 
+//    forall( otype T | constraint( T ) ) int @attr( T );
+
+int @max = 3;
+
+int main() {
+    int x;
+    otype @otype(otype t);									// compiler intrinsic
+    otype @widest(otype t);
+    @otype(x) *y;										// gcc: otypeof(x) *y;
+//    const @widest(double) *w;							// gcc: const otypeof(x) *w;
+//    * @otype(3 + 4) z;									// cfa declaration syntax
+    y = @max;		
+    z = @max(x) + @size(int);
+    y = @min(3 + 4);
+    if ( @const(x) ) { }
+    if ( @volatile(y) ) { }
+    if ( @extern(y) ) { }
+    if ( @static(y) ) { }
+    @max;
+}
+
+int @foo(int) {
+    return 7;
+}
+
+int @voon;
+double @voon;
+
+int @bort(int);
+int @bort(double);
+
+void g( int );
+
+void f() {
+	float x;
+	double x;
+	@bort(x);
+	@bort(int);
+	g( @voon );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
