@@ -0,0 +1,638 @@
+from .simplification import simplify%0A%0Afrom ppp_datamodel.communication import TraceItem, Response%0A%0A%0Adef traverse_until_fixpoint(predicate, tree):%0A    %22%22%22Traverses the tree again and again until it is not modified.%22%22%22%0A    old_tree = None%0A    tree = simplify(tree)%0A    while tree and old_tree != tree:%0A        old_tree = tree%0A        tree = tree.traverse(predicate)%0A        if not tree:%0A            return None%0A        tree = simplify(tree)%0A    return tree%0A%0A%0Adef answer(request, tree, measures, module_name):%0A    trace = request.trace + %5BTraceItem(module_name, tree, measures)%5D%0A    return Response(request.language, tree, measures, trace)%0A%0A

Add 'shortcuts' module.