type union support