{"name":"Type Language","scopeName":"source.tl","patterns":[{"include":"#comments"},{"include":"#triple-statement"},{"include":"#combinator-declaration"}],"repository":{"combinator-args":{"patterns":[{"include":"#combinator-args-member"}]},"combinator-args-member":{"name":"meta.combinator.arg.tl","begin":"([_$[:alpha:]][_$[:alnum:]]*)(\\:)(([_$[:alpha:]][_$[:alnum:]]*)|(#))","beginCaptures":{"1":{"name":"meta.definition.combinator.arg.tl variable.other.tl"},"2":{"name":"punctuation.separator.key-value.tl"},"4":{"name":"entity.name.type.tl"},"5":{"name":"keyword.other.hash.tl"}}},"combinator-declaration":{"patterns":[{"include":"#combinator-declaration-with-hash"},{"include":"#combinator-declaration-without-hash"}]},"combinator-declaration-with-hash":{"name":"meta.combinator.declaration.tl","begin":"(([_$\\w]+)(\\b\\.))?([_$\\w]*)(\\b#)([[:alpha:][:alnum:]]*)\\s*","end":"\\;\\s*","patterns":[{"name":"punctuation.namespace.tl","match":"\\."},{"include":"#keywords"},{"include":"#comments"},{"include":"#combinator-opt-args"},{"include":"#combinator-args"},{"include":"#combinator-result-type"},{"match":"(=)\\s*","captures":{"1":{"name":"keyword.operator.assignment.tl"}}}],"beginCaptures":{"2":{"name":"meta.definition.combinator.tl variable.other.tl"},"4":{"name":"meta.definition.combinator.tl variable.other.tl"},"5":{"name":"storage.type.tl"},"6":{"name":"storage.type.tl"}}},"combinator-declaration-without-hash":{"name":"meta.combinator.declaration.tl","begin":"(([_$\\w]+)(\u0008\\.))?([_$\\w]*)(?= )","end":"\\;\\s*","patterns":[{"name":"punctuation.namespace.tl","match":"\\."},{"include":"#keywords"},{"include":"#comments"},{"include":"#combinator-opt-args"},{"include":"#combinator-args"},{"include":"#combinator-result-type"},{"match":"(=)\\s*","captures":{"1":{"name":"keyword.operator.assignment.tl"}}}],"beginCaptures":{"2":{"name":"meta.definition.combinator.tl variable.other.tl"},"4":{"name":"meta.definition.combinator.tl variable.other.tl"}}},"combinator-opt-args":{"name":"meta.object.type.tl","begin":"\\{","end":"\\}","patterns":[{"include":"#combinator-args-member"}],"beginCaptures":{"0":{"name":"punctuation.definition.block.tl"}},"endCaptures":{"0":{"name":"punctuation.definition.block.tl"}}},"combinator-result-type":{"patterns":[{"match":"([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\.)","captures":{"1":{"name":"entity.name.type.module.tl"},"2":{"name":"punctuation.accessor.tl"}}},{"name":"entity.name.type.tl","match":"[_$[:alpha:]][_$[:alnum:]]*"}]},"comments":{"patterns":[{"name":"comment.block.documentation.tl","begin":"/\\*\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.tl"}}},{"name":"comment.block.tl","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.tl"}}},{"name":"comment.line.double-slash.tl","match":"(//).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.tl"}}}]},"keywords":{"patterns":[{"name":"keyword.other.hash.tl","match":"\\#"},{"name":"keyword.other.questionmark.tl","match":"\\?"},{"name":"keyword.other.percent.tl","match":"\\%"}]},"triple-statement":{"patterns":[{"name":"keyword.control.triple.tl","begin":"\\-\\-\\-","end":"\\-\\-\\-","patterns":[{"name":"keyword.control.triple.name.tl","match":"\\b(types|functions)\\b"},{"name":"invalid.illegal","match":"\\b(.*)\\b"}],"beginCaptures":{"0":{"name":"punctuation.triple.open.tl"}},"endCaptures":{"0":{"name":"punctuation.triple.close.tl"}}}]}}}
