get unions working for basic types.  there is still ambiguity as to how to handle maps, etc.