Things to do for the REPL support in MCS:

Documentation for the REPL mode for MCS can be found here:

	      http://mono-project.com/CsharpRepl

* Embedding API

	* Booting the compiler without Main ()
	* Expose LoadAssembly/LoadPackage
	* Register fields?
	* Register a lookup function for fields?
	* Register classes to expose to REPL

* Embedded Library

	* Run a REPL on a socket (from Joe Shaw)
	* Host a REPL on XSP (from Nat).

* TODO

	Clear struct fields inside the clearing code.

* Other ideas:

	MD addin for "csharp"

* Supporting class-level declarations

	Currently the evaluator has this feature disabled, to enable
	it edit the eval.cs file and make this be the default:

-				parser.Lexer.putback_char = Tokenizer.EvalUsingDeclarationsParserCharacter;
-				//parser.Lexer.putback_char = Tokenizer.EvalCompilationUnitParserCharacter;
+				//parser.Lexer.putback_char = Tokenizer.EvalUsingDeclarationsParserCharacter;
+				parser.Lexer.putback_char = Tokenizer.EvalCompilationUnitParserCharacter;

	
	It currently has a few problems:

	* The usability is not as useful, since the defaults
	  for C# are still to make members private, we should
	  change this default to be public in those cases.

* Clearing data

	TODO: when clearing data for variables that have been overwritten
	we need to check for structs and clear all the fields that contain
	reference types.

* DEBATABLE: Implement auto-insert-semicolon

	This is easy to implement, just retry the parse with a
	semicolon, the question is whether this is a good idea to do
	in the first place or not.

Completion support
==================

	Supported:
	
		a.<TAB> to complete members of type `a'
		a<TAB> for types and namespaces
		a.W<TAB>
		a<TAB> for local variables

	Unsupported:
	
		delegate { FOO.<TAB>
		using statement autocompletion
