Capture result from each (major) phase as trees in API

Fair enough. I'm using `Vector` for this sort of thing because it's built by appending, although I notice most of the code uses `List` almost exclusively.