Take advantage of bound variables in protocol implementations
Make FlatGraph Reversible and Flippable; add crossings and marked
Add succs and preds to BlockGraph and ClassGraph; to that end, make BlockEdges Reversible
Make classes a topologically sorted seq of blocks, rather than a set of blocks