/// <summary>
 /// Initializes a new instance of the Continuation class.
 /// The evaluator and its chain of evaluators back to the beginning have to be cloned because they
 ///   hold information about the progress of the evaluation.  When the evaluation proceeds
 ///   these evaluators might be altered, damaging the ability to continue, which is what makes the
 ///   clone necessary.
 /// </summary>
 /// <param name="eval">The continuation to return to when applied.</param>
 private Continuation(Evaluator eval)
     : base(null, new ArgsInfo(1, 1, false))
 {
     this.savedEvaluator = eval.CloneChain();
 }