general {
    funcon-term: 
      initialise-giving initialise-generating finalise-failing 
      sequential (
      print object-single-inheritance-feature-map
        object(fresh-atom,"A",{"a"|->"A"}),
      print object-single-inheritance-feature-map
        object(fresh-atom,"B",{"a"|->"B"}, 
          object(fresh-atom,"C",{"a"|->"C"})),
      else(
        is-value object-single-inheritance-feature-map
          object(fresh-atom,"D",map(), 
            object(fresh-atom,"E",map(),
              object(fresh-atom,"F",map())),
            object(fresh-atom,"G",map())),
        print "OK")
      )
        ;
}

tests {
    result-term: null-value;
    standard-out: [
    {"a"|->"A"},
    {"a"|->"B"},
    "OK"
    ];
}
