+* Value Parameter
+
+ I believe that `Value Parameter' might have been introduced
+ after C# 1.0, also notice than in the treatment of Value Parameter
+ the parameters are defined in four categories:
+
+ Section 9.3 in the latest spec.
+
+
+Large project:
+--------------
+
+New
+---
+
+ It would be nice to optimize the case of:
+
+ Method (new ValueType ())
+
+ So that no temporary is created, and we only use a newobj call
+ that remains on the stack, as opposed to ldloca, initobj, ldloc
+ call.
+
+NEW NOTES:
+----------
+
+ ImplicitStandardConversionExists and ImplicitStandardConversion
+ should always be the same, but there are a few diverging lines that
+ must be studied:
+
+ if (expr_type == target_type && !(expr is NullLiteral))
+ return expr;
+
+ vs:
+
+ if (expr_type == target_type)
+ return true;
+
+****************************************************************************************
+*
+* The information on the rest of this file is mostly outdated, and its kept here for
+* historical reasons
+*
+****************************************************************************************
+
+Error Reporting:
+----------------
+
+ * Make yyerror show a nice syntax error, instead of the current mess.
+
+Iterators
+---------
+ * Reset should throw not implemented now.
+
+Optimization ideas
+------------------
+
+ Currently when we build a type cache, it contains private members,
+ internal members, and internal protected members; We should trim
+ these out, as it shows up on the profile.
+
+ We create too many Arraylists; When we know the size, we should create
+ an array;
+
+ During parsing we use arraylists to accumulate data, like this:
+
+ thing:
+
+ thing_list
+ : thing { $$ =new ArrayList (); $$.Add ($1); }
+ | thing_list thing { ArrayList a = $1; a.Add ($2); $$ = a; }
+
+ We probably could start using "Pairs" there:
+
+ thing_list
+ : thing { $$ = new Pair ($1, null); }
+ | thing_list thing { Pair p = $1; $$ = new Pair ($2, $1); }
+
+
+EmitContext.ResolveTypeTree