general {
    funcon-term: 
      initialise-giving initialise-generating finalise-failing 
      sequential (
      print object-tree 
        object(fresh-atom,"A",map()),
      print object-tree 
        object(fresh-atom,"B",map(), 
          object(fresh-atom,"C",map())),
      print object-tree
        object(fresh-atom,"D",map(), 
          object(fresh-atom,"E",map(),
            object(fresh-atom,"F",map())),
          object(fresh-atom,"G",map()))
      )
        ;
}

tests {
    result-term: null-value;
    standard-out: [
    tree (object(atom("@1"),"A",map-empty)),
    tree (object(atom("@2"),"B",map-empty,object(atom("@3"),"C",map-empty)),
      tree (object(atom("@3"),"C",map-empty))),
    tree (object(atom("@4"),"D",map-empty,
            object(atom("@5"),"E",map-empty,object(atom("@6"),"F",map-empty)),
            object(atom("@7"),"G",map-empty)),
      tree (object(atom("@5"),"E",map-empty,object(atom("@6"),"F",map-empty)),
        tree (object(atom("@6"),"F",map-empty))),
      tree (object(atom("@7"),"G",map-empty)))
    ];
}
