Sun Aug 2 13:42:44 EDT 2015

Next: generic Term traversal

Term is now a fairly direct representation of actual code, so it needs
some traversal to gather things.  Do this generically.

It is not a traversible because this doesn't contain any "data" in a
generic way.  To make it so, find a way to define Functor first.

Start from what is necessary, then generalize:
- bubble up Context
- bubble up Return

These are the same.  Don't perform transformation: just pick up return