Use constructor types in AST patterns
Add diff tool; remove concrete annos from imploder