general {
    funcon-term:
      initialise-storing
      give(
        { "a" |-> allocate-initialised-variable(booleans,false),
          "b" |-> 42,
          "c" |-> allocate-initialised-variable(booleans,true) },
        sequential(
          structural-assign(map(),map()),
          structural-assign(given,{"a"|->true,"b"|->42,"c"|->false}),
          structural-assign(true,true),
          else(
            structural-assign(given,{"a"|->true,"b"|->99,"c"|->false}),
            structural-assign(given,{"a"|->true,"c"|->false}),
            structural-assign(given,map()),
            structural-assign(given,{"a"|->true,"b"|->42,"c"|->false,"d"|->()}),
            structural-assign(true,false),
            print"OK")))
        ;
}

tests {
    result-term: null-value;
    standard-out: ["OK"];
}
