       else
         []
     
+    # @param key the property name
+    # @param value the property value
+    # @returns the {key, value} object
+    associate: (key, value) ->
+      obj = {}
+      obj[key] = value
+      obj
+
     # @param objects the delegate objects
-    # @returns a new object with properties from the given
-    #   objects
+    # @returns a new object with properties from the given objects
     delegate: (objects...) ->
       _.reduce(objects, _.defaults, {})
 

      replace = (key, val) ->
        elideCycles = (val) ->
          if _.isObject(val)
            if val in visited
              '...'
            else
              visited.push(val)


        elideCycles(val)
      
      JSON.stringify(obj, replace, 2)

    # @param obj the associative object
    # @returns the concatenated values array
