KEYED LISTS
       Extended Tcl defines a special type of list referred to as
       keyed lists.  These lists provided a structured data  type
       built  upon standard Tcl lists.  This provides a function
       ality similar to structs in the C programming language.

       A keyed list is a list in which each  element  contains  a
       key  and  value  pair.   These element pairs are stored as
       lists themselves, where the key is the  first  element  of
       the  list,  and  the  value  is the second.  The key-value
       pairs are referred to as fields.  This is an example of  a
       keyed list:

                  {{NAME  {Frank  Zappa}} {JOB {musician and com
              poser}}}

       If the variable person  contained  the  above  list,  then
       keylget person NAME would return {Frank Zappa}.  Executing
       the command:

            keylset person ID 106

       would make person contain

                  {{ID 106} {NAME {Frank Zappa}}  {JOB  {musician
              and composer}}

       Fields may contain subfields; `.' is the separator charac
       ter.  Subfields are actually fields  where  the  value  is
       another  keyed  list.  Thus the following list has the top
       level fields ID and NAME,  and  subfields  NAME.FIRST  and
       NAME.LAST:

                  {ID 106} {NAME {{FIRST Frank} {LAST Zappa}}}

       There  is  no  limit  to the recursive depth of subfields,
       allowing one to build complex data structures.

       Keyed lists are constructed and accessed via a  number  of
       commands.   All  keyed  list  management commands take the
       name of the variable containing the keyed list as an argu
       ment  (i.e.  passed by reference), rather than passing the
       list directly.
