An Association type (or KeyValue) is a simple type:
Association
key
value
Key and value are generally both type "Object" (or constrained by a given problem).
Important -- the "key" type must understand the message "equals" (note that for primitive keys like strings and numbers "equals" may already be defined)