Records
B => struct(foo:NAT, bar:NAT)
#{{:bar 0, :foo 2} {:bar 3, :foo 2} {:bar 3, :foo 3} {:bar 3, :foo 0} {:bar 2, :foo 1} {:bar 1, :foo 3} {:bar 2, :foo 0} {:bar 1, :foo 0} {:bar 1, :foo 2} {:bar 1, :foo 1} {:bar 2, :foo 2} {:bar 0, :foo 0} {:bar 3, :foo 1} {:bar 0, :foo 1} {:bar 2, :foo 3} {:bar 0, :foo 3}}
B => rec(foo:1, bar:2)
{:bar 2, :foo 1}
B => rec(foo:1, bar:2)'foo
1
lisb=> (struct :foo nat-set :bar nat-set) ;; B: struct(foo: NAT, bar: NAT)
#{{:bar 0, :foo 2} {:bar 3, :foo 2} {:bar 3, :foo 3} {:bar 3, :foo 0} {:bar 2, :foo 1} {:bar 1, :foo 3} {:bar 2, :foo 0} {:bar 1, :foo 0} {:bar 1, :foo 2} {:bar 1, :foo 1} {:bar 2, :foo 2} {:bar 0, :foo 0} {:bar 3, :foo 1} {:bar 0, :foo 1} {:bar 2, :foo 3} {:bar 0, :foo 3}}
lisb=> (record :foo 1 :bar 2) ;; B: rec(foo: 1, bar: 2)
{:bar 2, :foo 1}
lisb=> (record-get (record :foo 1 :bar 2) :foo) ;; B: rec(foo: 1, bar: 2)'foo
1