* Make sure that we are pinning the right variable
+* local_variable_declaration
+
+ Not sure that this grammar is correct, we might have to
+ resolve this during semantic analysis.
+
+* Optimizations
+
+ In Indexers and Properties, probably support an EmitWithDup
+ That emits the code to call Get and then leaves a this pointer
+ in the stack, so that later a Store can be emitted using that
+ this pointer (consider Property++ or Indexer++)
+
+* Use of local temporary in UnaryMutator
+
+ We should get rid of the Localtemporary there for some cases
+
+ This turns out to be very complex, at least for the post-version,
+ because this case:
+
+ a = i++
+
+ To produce optimal code, it is necessary for UnaryMutator to know
+ that it is being assigned to a variable (the way the stack is laid
+ out using dup requires the store to happen inside UnaryMutator).
+
+* Interface indexers
+
+ I have not figured out why the Microsoft version puts an
+ `instance' attribute, and I am not generating this `instance' attribute.
+
+ Explanation: The reason for the `instance' attribute on
+ indexers is that indexers only apply to instances
+
+* Check for Final when overriding, if the parent is Final, then we cant
+ allow an override.
+
+ Implement base indexer access.
+
+current_container/current_namespace and the DeclSpace
+-----------------------------------------------------
+
+ We are storing fully qualified names in the DeclSpace instead of the node,
+ this is because `current_namespace' (Namepsace) is not a DeclSpace like
+ `current_container'.
+
+ The reason for storing the full names today is this:
+
+ namespace X {
+ class Y {
+ }
+ }
+
+ namespace A {
+ class Y {
+ }
+ }
+
+ The problem is that we only use the namespace stack to track the "prefix"
+ for typecontainers, but they are not typecontainers themselves, so we have
+ to use fully qualified names, because both A.X and A.Y would be entered
+ in the toplevel type container. If we use the short names, there would be
+ a name clash.
+
+ To fix this problem, we have to make namespaces DeclSpaces.
+
+ The full size, contrasted with the size that could be stored is:
+ corlib:
+ Size of strings held: 368901
+ Size of strings short: 147863
+
+ System:
+ Size of strings held: 212677
+ Size of strings short: 97521
+
+ System.XML:
+ Size of strings held: 128055
+ Size of strings short: 35782
+
+ System.Data:
+ Size of strings held: 117896
+ Size of strings short: 36153
+
+ System.Web:
+ Size of strings held: 194527
+ Size of strings short: 58064
+
+ System.Windows.Forms:
+ Size of strings held: 220495
+ Size of strings short: 64923
+
+
+The use of DottedName
+---------------------
+
+ We could probably use a different system to represent names, like this:
+
+ class Name {
+ string simplename;
+ Name parent;
+ }
+
+ So `System.ComponentModel' becomes:
+
+ x: (System, null)
+ y: (ComponentModel, x)
+
+ The problem is that we would still need to construct the name to pass to
+ GetType.
+
+ This has been now implemented, its called "QualifiedIdentifier"
+
+TODO:
+
+ 1. Create a "partial" emit context for each TypeContainer..
+
+ 2. EmitContext should be partially constructed. No IL Generator.
+
+ interface_type review.
+
+ parameter_array, line 952: `note: must be a single dimension array type'. Validate this
+
+Instance idea
+-------------
+
+ It would be nice to have things that can be "instances" to have an
+ EmitInstance method (this would default to nothing).
+
+ The idea is to be able to use efficiently the instance data on stack
+ manipulations, as opposed to the current scheme, where we basically have
+ a few special cases.
+
+ * `yield' is no longer a keyword, it only has special
+ meaning before a return or break keywords.
+
+ * Study side effects with assign
+ * Study TemporaryStorage/LocalStorage -> Merge/rename
+