'''[dict]s are just like name value pair lists''' (but you shouldn't rely on any particular order of the pairs!) Just like the results of [[[array] get]], so you can [[[array] set X [[[dict] filter]]]] or (conversely) [[[dict] get [[[array] get X]] key]]. So, you can define a [proc] fred {args} and then immediately treat ''$args'' as a [dict], if (and only if) the values passed have the form of a [dict] - no special processing is required (rather, the [shimmering] occurs in the background. This is useful for passing named arguments to a [proc], sort of like the various options packages: [[[dict] get $args -option]] will fetch any value passed as ''-option value''. '''[[[dict] with]] alters the enclosing scope''' So if you have a [dict] X, [[[dict] with X {}]] will construct and initialize variables with the same names and values as X's contents. This is useful for passing around collections of named values. You could use it to populate the variables in a namespace (for, say, a collection of defaults) [[[namespace] eval [dict] with $dv {}]] ---- [Category Example]