correct declarations for union types