Do I want to pattern-match against the contents (for example, matching a dictionary that has a key of :name somewhere in it)?
- If so, use a map.
Will I want more than one entry with the same key?
- If so, you'll have to use the Keyword module.
Do I need to guarantee the elements are ordered?
- If so, again, use the Keyword module.
Do I have a fixed set of fields (that is, is the structure of the data always the same)?
- If so, use a struct.
Otherwise, if you've reached this point
- Use a map.