It's easy to implement both lists and name-value associations in terms of pairs, so I'm not sure why they need to be built in.<p>In Fexl (<a href="http://fexl.com/code" rel="nofollow">http://fexl.com/code</a>), the only built in concept is the <i>function</i>, and all data is structured out of functions. I won't go into all the details here, but concepts like pair, list, key-value assoc, branch, and everything else are readily expressed as pure functions. So-called "circular" structures are created with the Y combinator, so they really are not circular in memory, only in concept.