Added type union impl
WIP: renaming/restructuring typeset