general {
    funcon-term: 
      initialise-giving
      sequential(
        print [ interleave-repeat(fail, 2, 1) ],
        tuple interleave-repeat(
          sequential(print integer-add(given,2), given),
          sequential(print 1, 1),
          sequential(print 2, 3)))
        ;
}

tests {
    result-term: tuple(1, 2, 3);
    standard-out: [ [ ], 1, 2, 3, 4, 5];
//Also:
//  standard-out: [ [ ], ...., 3, 5, 4];
//  standard-out: [ [ ], ...., 4, 3, 5];
//  standard-out: [ [ ], ...., 4, 5, 3];
//  standard-out: [ [ ], ...., 5, 3, 4];
//  standard-out: [ [ ], ...., 5, 4, 3];
//  standard-out: [ [ ], 2, 1, .......];
}
