syn match classMembers '^\s\+\(\(<+\)\|\(<\~\)\|\(<-\)\|\(+>\)\|\(\~>\)\|\(->\)\|-\|+\|\(::\)\|#\)' nextgroup=memberName skipwhite
syn match internalOperators '\(\(<+\)\|\(<\~\)\|\(<-\)\|\(+>\)\|\(\~>\)\|\(->\)\|-\|+\|\(::\)\|#\)' contained nextgroup=memberName skipwhite
syn match returnIdentifiers '\(=>\)' nextgroup=returnValue
-syn match returnIdentifiers '\(->\)'
+syn match throwIdentifiers '\(#>\)' nextgroup=throwValue
syn match memberName '\w\+' contained nextgroup=internalOperators,spacedDataType
syn match separators '|\|,' contained
syn match returnValue '.*' contained contains=dataType,parameters
+syn match throwValue '.*' contained contains=dataType,parameters
" Nest JSON
syn include @JSON syntax/json.vim
hi def link classMembers Operator
hi def link returnIdentifiers Operator
+hi def link throwIdentifiers Operator
hi def link internalOperators Operator
hi def link memberName Special