Changes introduced in release 1.3+
- New TAL constructor language
- New toplevel driver works with TALC assembler
- top-level global variables with following syntax
	public int x = 0;
	private int x = 5;
	public point x = new point(3,4);
Constant expressions include constants, new structs, and new unions.  For
option structs null initializers will break if the type is abstract.

- abstract and public types (public is still the default)
	abstract struct point { int x,y; }
	public   struct point { int x,y; }
- precedence of operators has been fixed and we now parse all C operators.
	(due to Dan Grossman)
- We now allow: extern int x,y;
- bug fixes:
	Int switch now uses the CMP instruction instead of TST
	exp1 ? exp2 : exp3 now works even if exp2 and exp3 have void type
	Eliminated single value case for sums.  It never worked anyways.
	Popcorn command line should now correctly deal with filenames with
spaces.

Changes introduced in release 1.3
- Ocaml 1.07 compatible
- bug fixes:
	- BooleanType printed as bool instead of boolean
	- default: clause of switch takes stmts instead of stmt
	- handle Not_found when doing a new union instead of Invalid_argument 
		(List.assoc)
	- array subscript on strings used wrong scale
	- stack overflow in TAL pretty printer -- change set_margin 9999
		instead of 999999.
	- got rid of re-defined imported types
	[last two due to Trevor]
	- continue jumped to break label instead of continue label
	- various return-check bug fixes
- additions:
	- tuples:  
		- type syntax:  *(t1,...,tn)   (n >= 0)
		- intro:  new (e1,...,en)      (n >= 0)
		- elim:   e.i		       (i >= 1)
  [by Trevor]
	- do loops
	- slightly different syntax for arrays, support for first-class
		function (types) (sort of).
	- expression instead of id for function call.
	- constructs for code generation: suspend, resume, compile, hole
		- type checking support
		- no compiler support yet (requires TAL changes)

TODO:
- 
