http://schemers.org/Documents/Standards/R5RS/HTML/

Atom:
	- create atom object
	- add subtypes for string, number, etc.?

Cons:
	- fix cons count for empty cons?

Builtins:
	- consider if eq? and eqlist? should really be multis
		- add varieties for mismatched parameters if not
	- refactor is_deeply() and is() in Pheme::Test
		- add diagnostics too, if possible
	- add nil?
	- fix car on empty cons

Special forms:
	- cond
	- lambda (be careful of define interaction though!)
	- else
	- and
	- or

Compiler:
	- extract and merge POST improvements with Punie
		- publish them under compilers/
		- share those nodes somehow
	- port to new TGE, when the branch lands
	- fix load_bytecode section in generated code
	- refactor compiler backend object
		- share with Perl 6 and Punie
		- move somewhere in Parrot lib path
		- allow dumping of trees and (runnable) PIR
	- use precompiled tree grammars
	- merge all PBC files into pheme.pbc

Fix namespace:
	- lowercase
	- directly under Parrot root
	- use nested namespaces properly

Grammar:
	- tighten identifiers
		- allow ! $ % & * + - . / : < = > ? @ ^ _ ~ 
		- start with any non-number-beginning character
		- . + - not allowed at the start of an identifier
		- + - themselves can be an identifier
		- ... can be an identifier
	- fix whitespace
		- space, newline (also tab, carriage return)
	- parse numbers
		- . + - allowed at the start of a number
	- add more rules
		- \ is an escape character

Predicates:
	- boolean?
		- everything but #f is true (conditionals, not true here)
	- symbol?
	- char?
	- vector?
	- procedure?
	- pair?
	- number?
	- string?
	- port?
	- predicates are disjoint
	- empty list satisfies none
