syn match factorSymbol /\<SYMBOL:\s\+\S\+\>/
syn region factorSymbols start=/\<SYMBOLS:\>/ end=/;/
syn region factorConstructor2 start=/\<CONSTRUCTOR:\?/ end=/;/
+syn region factorIntersection start=/\<INTERSECTION:\>/ end=/\<;\>/
syn region factorTuple start=/\<TUPLE:\>/ end=/\<;\>/
syn region factorUnion start=/\<UNION:\>/ end=/\<;\>/
syn region factorStruct start=/\<\(UNION-STRUCT:\|STRUCT:\)\>/ end=/\<;\>/
HiLink factorForget Define
HiLink factorAlien Define
HiLink factorSlot Define
+ HiLink factorIntersection Typedef
HiLink factorTuple Typedef
HiLink factorUnion Typedef
HiLink factorStruct Typedef
syn match factorSymbol /\<SYMBOL:\s\+\S\+\>/
syn region factorSymbols start=/\<SYMBOLS:\>/ end=/;/
syn region factorConstructor2 start=/\<CONSTRUCTOR:\?/ end=/;/
+syn region factorIntersection start=/\<INTERSECTION:\>/ end=/\<;\>/
syn region factorTuple start=/\<TUPLE:\>/ end=/\<;\>/
syn region factorUnion start=/\<UNION:\>/ end=/\<;\>/
syn region factorStruct start=/\<\(UNION-STRUCT:\|STRUCT:\)\>/ end=/\<;\>/
HiLink factorForget Define
HiLink factorAlien Define
HiLink factorSlot Define
+ HiLink factorIntersection Typedef
HiLink factorTuple Typedef
HiLink factorUnion Typedef
HiLink factorStruct Typedef