I really am surprised that these would be difficult at all. The lowering is pretty easy:a) T[U] => AssociativeArray!(U,T)b) [a:b, c:d] => AssociativeArray!(typeof(true ? a : c), typeof(true ? b : d)).literal(a, b, c, d);
Working out what to lower to is easy, working out when to lower it is hard.
