@Override public ExprTree mutateExprTree(ExprTree ptree, ExprTreeSchema schema, IRandGen randgen) { // Copy of expr ExprTree stree = ptree.copy(); // Node selection int selectIndex = randgen.choose(0, ptree.size()); // Mutated node IPrimitive oldBlock = stree.getBlock(selectIndex); Class<?> rtype = oldBlock.returnType(); int arity = oldBlock.argumentTypes().length; IPrimitive newBlock = schema.getAnyBlock(rtype, randgen, arity); stree.setBlock(newBlock, selectIndex); // Return result return stree; }