@Override
  public PEnumerate executePEnumerate(VirtualFrame frame) throws UnexpectedResultException {
    probe.enter(child, frame);
    PEnumerate result;

    try {
      result = child.executePEnumerate(frame);
    } catch (KillException e) {
      throw (e);
    } catch (Exception e) {
      probe.leaveExceptional(child, frame, e);
      throw (e);
    }

    return result;
  }
  @Override
  public int executeInt(VirtualFrame frame) throws UnexpectedResultException {
    probe.enter(child, frame);
    int result;

    try {
      result = child.executeInt(frame);
      probe.leave(child, frame);
    } catch (KillException e) {
      throw (e);
    } catch (Exception e) {
      probe.leaveExceptional(child, frame, e);
      throw (e);
    }

    return result;
  }
  @Override
  public Object execute(VirtualFrame frame) {
    probe.enter(child, frame);
    Object result;

    try {
      result = child.execute(frame);
      probe.leave(child, frame);
    } catch (KillException e) {
      throw (e);
    } catch (Exception e) {
      probe.leaveExceptional(child, frame, e);
      throw (e);
    }

    return result;
  }
  @Override
  public PSequenceIterator executePSequenceIterator(VirtualFrame frame)
      throws UnexpectedResultException {
    probe.enter(child, frame);
    PSequenceIterator result;

    try {
      result = child.executePSequenceIterator(frame);
      probe.leave(child, frame);
    } catch (KillException e) {
      throw (e);
    } catch (Exception e) {
      probe.leaveExceptional(child, frame, e);
      throw (e);
    }

    return result;
  }
  @Override
  public PythonBuiltinClass executePythonBuiltinClass(VirtualFrame frame)
      throws UnexpectedResultException {
    probe.enter(child, frame);
    PythonBuiltinClass result;

    try {
      result = child.executePythonBuiltinClass(frame);
      probe.leave(child, frame);
    } catch (KillException e) {
      throw (e);
    } catch (Exception e) {
      probe.leaveExceptional(child, frame, e);
      throw (e);
    }

    return result;
  }
 @SlowPath
 public Iterable<SyntaxTag> getSyntaxTags() {
   return probe.getSyntaxTags();
 }
 @SlowPath
 public boolean isTaggedAs(SyntaxTag tag) {
   return probe.isTaggedAs(tag);
 }