produce annotated AST in infer