#+begin_src cfengine3
bundle common g
{
  vars:
    "array[key1]" string => "one";
    "array[key2]" string => "two";
}

bundle agent __main__
{
  vars:
    "thing[1][color]" string => "red";
    "thing[1][name]" string => "one";
    "thing[2][color]" string => "blue";
    "thing[2][name]" string => "two";
    "_thing_idx" slist => sort(getindices(thing), lex);

  reports:
    "Keys in default:g.array = $(with)"
      with => join(", ", sort(getindices("default:g.array"), lex));

    "Keys of default:main.thing[1] = $(with)"
      with => join(", ", sort(getindices("default:main.thing[1]"), lex));

    "Thing $(thing[$(_thing_idx)][name]) is $(thing[$(_thing_idx)][color])";
}

#+end_src
###############################################################################
#+begin_src example_output
#@ ```
#@ R: Keys in default:g.array = key1, key2
#@ R: Keys of default:main.thing[1] = color, name
#@ R: Thing one is red
#@ R: Thing two is blue
#@ ```
#+end_src
