It's just a copy of pgs templates only instead of creating a table it instantiates alists. This allows me to store the order of things (even for tables).
example use:
arc> (arrange author first "First Name" last "Last Name")
((first #<procedure: gs6338>) (last #<procedure: gs6338>))
arc> (= x (actuate 'author))
((first "First Name") (last "Last Name"))
arc> x!first
"First Name"
I've used this to output large tables in CSV format, where the header and sort order is derived from an 'arrangement'.