anchor.diff:        expect(capture[1][0](capture[1][1]).isSuccess, isFalse);
       });
       test('success', () {
  -      var parser = new ContinuationParser(digit(),
  -          (continuation, Context context) {
  +      var parser = new ContinuationParser(digit(), (continuation, Context context) {
           return context.success('Always succeed');
         });
         expect(parser.parse('1').isSuccess, isTrue);
         expect(parser.parse('a').isSuccess, isTrue);
       });
       test('failure', () {
  -      var parser = new ContinuationParser(digit(),
  -          (continuation, Context context) {
  +      var parser = new ContinuationParser(digit(), (continuation, Context context) {
           return context.failure('Always fail');
         });
         expect(parser.parse('1').isSuccess, isFalse);
         expect(parser.parse('a').isSuccess, isFalse);
       });
  +    test('copy', () {
  +      var parser = new ContinuationParser(digit(), (continuation, context) {
  +        return continuation(context);
  +      });
  +      var copy = parser.copy();
  +      expect(copy.parse('1').isSuccess, isTrue);
  +      expect(copy.parse('a').isSuccess, isFalse);
  +    });
     });
     group('trace', () {
       test('success', () {
         var lines = new List();
  -      expect(trace(IDENTIFIER, (line) => lines.add(line)).parse('a').isSuccess,
  -          isTrue);
  +      expect(trace(IDENTIFIER, (line) => lines.add(line)).parse('a').isSuccess, isTrue);
         expect(lines, [
           'Instance of \'SequenceParser\'',
           '  Instance of \'CharacterParser\'[letter expected]',
  
positive.code:     });
      test('failure', () {
        var lines = new List();
        expect(progress(
            IDENTIFIER, (line) => lines.add(line)).parse('1').isFailure, isTrue);
        expect(lines, [
          '* Instance of \'SequenceParser\'',
          '* Instance of \'CharacterParser\'[letter expected]'
  
negative.code:     });
      test('resume', () {
        var capture = new List();
        var parser = new ContinuationParser(digit(), (continuation, Context context) {
          capture.add([continuation, context]);
          // we have to return something for now
          return context.failure('Abort');
  