union type
Merge branch 'union'