github-linguist 7.17.0 → 7.20.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/github-linguist +1 -0
- data/grammars/annotation.liquidhaskell.haskell.json +1 -1
- data/grammars/hint.haskell.json +1 -1
- data/grammars/hint.message.haskell.json +1 -1
- data/grammars/hint.type.haskell.json +1 -1
- data/grammars/liquid.injection.json +1 -0
- data/grammars/markdown.cadence.codeblock.json +1 -0
- data/grammars/markdown.curry.codeblock.json +1 -0
- data/grammars/markdown.prisma.codeblock.json +1 -0
- data/grammars/markdown.textproto.codeblock.json +1 -0
- data/grammars/source.2da.json +1 -0
- data/grammars/source.abap.json +1 -1
- data/grammars/source.acucobol.json +1 -1
- data/grammars/source.aidl.json +1 -1
- data/grammars/source.alloy.json +1 -1
- data/grammars/source.astro.json +1 -0
- data/grammars/source.ats.json +1 -1
- data/grammars/source.ballerina.json +1 -1
- data/grammars/source.berry.bytecode.json +1 -0
- data/grammars/source.berry.json +1 -0
- data/grammars/source.bms.json +1 -0
- data/grammars/source.bmsmap.json +1 -0
- data/grammars/source.bnd.json +1 -0
- data/grammars/source.cadence.json +1 -0
- data/grammars/source.cairo.json +1 -0
- data/grammars/source.cl.json +1 -0
- data/grammars/source.clar.json +1 -0
- data/grammars/source.clojure.json +1 -1
- data/grammars/source.cmd.json +1 -0
- data/grammars/source.cobol.json +1 -1
- data/grammars/source.cobol_acu_listfile.json +1 -0
- data/grammars/source.cobol_mf_listfile.json +1 -0
- data/grammars/source.cobol_mfprep.json +1 -0
- data/grammars/source.cobol_pcob_listfile.json +1 -0
- data/grammars/source.cobolit.json +1 -0
- data/grammars/source.cobsql_dir.json +1 -0
- data/grammars/source.cs.json +1 -1
- data/grammars/source.csound.json +1 -1
- data/grammars/source.curry.json +1 -0
- data/grammars/source.dart.json +1 -1
- data/grammars/source.data-weave.json +1 -1
- data/grammars/source.dds.dspf.json +1 -0
- data/grammars/source.dds.icff.json +1 -0
- data/grammars/source.dds.lf.json +1 -0
- data/grammars/source.dds.pf.json +1 -0
- data/grammars/source.dds.prtf.json +1 -0
- data/grammars/source.deb-control.json +1 -0
- data/grammars/source.debian.makefile.json +1 -0
- data/grammars/source.denizenscript.json +1 -0
- data/grammars/source.dir.json +1 -0
- data/grammars/source.ditroff.json +1 -1
- data/grammars/source.earthfile.json +1 -0
- data/grammars/source.elixir.json +1 -1
- data/grammars/source.euphoria.json +1 -0
- data/grammars/source.fsharp.json +1 -1
- data/grammars/source.futhark.json +1 -1
- data/grammars/source.gcode.json +1 -1
- data/grammars/source.gdscript.json +1 -1
- data/grammars/source.genero-forms.json +1 -0
- data/grammars/source.genero.json +1 -0
- data/grammars/source.gitignore.json +1 -1
- data/grammars/source.gleam.json +1 -0
- data/grammars/source.goldgrm.json +1 -0
- data/grammars/source.gsc.json +1 -0
- data/grammars/source.hack.json +1 -1
- data/grammars/source.haskell.json +1 -1
- data/grammars/source.hlasm.json +1 -0
- data/grammars/source.hoon.json +1 -0
- data/grammars/source.hsig.json +1 -1
- data/grammars/source.icurry.json +1 -0
- data/grammars/source.janet.json +1 -0
- data/grammars/source.jcl.json +1 -1
- data/grammars/source.js.json +1 -1
- data/grammars/source.json.json +1 -1
- data/grammars/source.julia.json +1 -1
- data/grammars/source.kotlin.json +1 -1
- data/grammars/source.ligo.json +1 -0
- data/grammars/source.m2.json +1 -1
- data/grammars/source.matlab.json +1 -1
- data/grammars/source.mc.json +1 -0
- data/grammars/source.mfu.json +1 -0
- data/grammars/source.mfupp_dir.json +1 -0
- data/grammars/source.mi.json +1 -0
- data/grammars/source.miniyaml.json +1 -0
- data/grammars/source.mint.json +1 -0
- data/grammars/source.mligo.json +1 -0
- data/grammars/source.mlir.json +1 -1
- data/grammars/source.mo.json +1 -0
- data/grammars/source.opts.json +1 -1
- data/grammars/source.p4.json +1 -1
- data/grammars/source.pcb.schematic.json +1 -1
- data/grammars/source.pcb.sexp.json +1 -1
- data/grammars/source.pic.json +1 -1
- data/grammars/source.pli.json +1 -0
- data/grammars/source.pnlgrp.json +1 -0
- data/grammars/source.pony.json +1 -1
- data/grammars/source.postscript.json +1 -1
- data/grammars/source.procfile.json +1 -0
- data/grammars/source.promela.json +1 -0
- data/grammars/source.proto.json +1 -1
- data/grammars/source.python.kivy.json +1 -0
- data/grammars/source.q.json +1 -1
- data/grammars/source.q_output.json +1 -1
- data/grammars/source.qsharp.json +1 -1
- data/grammars/source.rego.json +1 -1
- data/grammars/source.religo.json +1 -0
- data/grammars/source.rescript.json +1 -1
- data/grammars/source.rpg.json +1 -0
- data/grammars/source.rpgle.json +1 -0
- data/grammars/source.scala.json +1 -1
- data/grammars/source.shell.json +1 -1
- data/grammars/source.shellcheckrc.json +1 -1
- data/grammars/source.smali.json +1 -1
- data/grammars/source.solidity.json +1 -1
- data/grammars/source.ssh-config.json +1 -1
- data/grammars/source.stan.json +1 -1
- data/grammars/source.swift.json +1 -1
- data/grammars/source.talon.json +1 -0
- data/grammars/source.textproto.json +1 -0
- data/grammars/source.ts.json +1 -1
- data/grammars/source.tsx.json +1 -1
- data/grammars/source.utreport.json +1 -0
- data/grammars/source.vyper.json +1 -1
- data/grammars/source.win32-messages.json +1 -0
- data/grammars/source.witcherscript.json +1 -0
- data/grammars/source.wsd.json +1 -1
- data/grammars/source.yara.json +1 -1
- data/grammars/text.html.liquid.json +1 -1
- data/grammars/text.html.markdown.astro.json +1 -1
- data/grammars/text.html.php.json +1 -1
- data/grammars/text.roff.json +1 -1
- data/grammars/text.rtf.json +1 -1
- data/grammars/text.savane.json +1 -0
- data/grammars/text.tex.latex.haskell.json +1 -1
- data/grammars/version +1 -1
- data/lib/linguist/VERSION +1 -1
- data/lib/linguist/generated.rb +32 -14
- data/lib/linguist/generic.yml +1 -0
- data/lib/linguist/heuristics.yml +63 -1
- data/lib/linguist/languages.json +1 -1
- data/lib/linguist/languages.yml +333 -3
- data/lib/linguist/samples.json +1 -1
- data/lib/linguist/vendor.yml +1 -1
- metadata +106 -43
- data/grammars/source.opencobol.json +0 -1
- data/grammars/text.html.astro.json +0 -1
- data/lib/linguist/linguist.bundle +0 -0
- data/lib/linguist/linguist.so +0 -0
data/grammars/text.rtf.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"name":"RTF","scopeName":"text.rtf","patterns":[{"begin":"\\{\\\\\\*","end":"}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.operator.begin-ignorable-destination-group.rtf"}},"endCaptures":{"0":{"name":"keyword.operator.end-ignorable-destination-group.rtf"}}},{"begin":"\\{","end":"}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.operator.begin-group.rtf"}},"endCaptures":{"0":{"name":"keyword.operator.end-group.rtf"}}},{"name":"constant.character.escape.rtf","match":"\\\\[\\\\{}]"},{"name":"keyword.operator.formula.rtf","match":"\\\\\\|"},{"name":"constant.character.escape.non-breaking-space.rtf","match":"\\\\~"},{"name":"constant.character.escape.optional-hyphen.rtf","match":"\\\\-"},{"name":"constant.character.escape.non-breaking-hyphen.rtf","match":"\\\\_"},{"name":"keyword.operator.index-subentry.rtf","match":"\\\\:"},{"name":"keyword.operator.ignorable-destination.rtf","match":"\\\\\\*"},{"name":"support.function.par.rtf","match":"\\\\[\\n\\r]"},{"name":"constant.character.entity.rtf","match":"(\\\\')[0-9A-Fa-f]{2}","captures":{"1":{"name":"punctuation.definition.constant.rtf"}}},{"contentName":"markup.bold.rtf","begin":"\\\\b\\b","end":"(?=\\\\(?:b0|plain
|
1
|
+
{"name":"RTF","scopeName":"text.rtf","patterns":[{"begin":"\\{\\\\\\*","end":"}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.operator.begin-ignorable-destination-group.rtf"}},"endCaptures":{"0":{"name":"keyword.operator.end-ignorable-destination-group.rtf"}}},{"begin":"\\{","end":"}","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.operator.begin-group.rtf"}},"endCaptures":{"0":{"name":"keyword.operator.end-group.rtf"}}},{"name":"constant.character.escape.rtf","match":"\\\\[\\\\{}]"},{"name":"keyword.operator.formula.rtf","match":"\\\\\\|"},{"name":"constant.character.escape.non-breaking-space.rtf","match":"\\\\~"},{"name":"constant.character.escape.optional-hyphen.rtf","match":"\\\\-"},{"name":"constant.character.escape.non-breaking-hyphen.rtf","match":"\\\\_"},{"name":"keyword.operator.index-subentry.rtf","match":"\\\\:"},{"name":"keyword.operator.ignorable-destination.rtf","match":"\\\\\\*"},{"name":"support.function.par.rtf","match":"\\\\[\\n\\r]"},{"name":"constant.character.entity.rtf","match":"(\\\\')[0-9A-Fa-f]{2}","captures":{"1":{"name":"punctuation.definition.constant.rtf"}}},{"contentName":"markup.bold.rtf","begin":"\\\\b\\b","end":"(?=\\\\(?:b0(?:\\b|[^\\d])|plain\\b)|})","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"support.function.rtf"}}},{"contentName":"markup.italic.rtf","begin":"\\\\i\\b","end":"(?=\\\\(?:i0(?:\\b|[^\\d])|plain\\b)|})","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"support.function.rtf"}}},{"contentName":"markup.strike.rtf","begin":"\\\\strike\\b","end":"(?=\\\\(?:strike0(?:\\b|[^\\d])|plain\\b)|})","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"support.function.rtf"}}},{"match":"(\\\\[A-Za-z]+)(?:(-?)(\\d+))?","captures":{"1":{"name":"support.function.rtf"},"2":{"name":"keyword.operator.rtf"},"3":{"name":"constant.numeric.rtf"}}},{"name":"invalid.unimplemented.rtf","match":"\\\\[^A-Za-z]"}]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"name":"Savane Markup","scopeName":"text.savane","patterns":[{"include":"#fullMarkup"}],"repository":{"basicMarkup":{"patterns":[{"include":"#bold"},{"include":"#italic"},{"include":"#links"},{"include":"#nomarkup"}]},"bold":{"name":"markup.bold.emphasis.strong.savane","match":"(?:^|(?\u003c=\\s))(\\*)([^* ][^*]*?)(\\*)","captures":{"1":{"name":"punctuation.definition.markup.bold.begin.savane"},"2":{"name":"punctuation.definition.markup.bold.end.savane"}}},"fullMarkup":{"patterns":[{"include":"#richMarkup"},{"include":"#headings"}]},"headingText":{"name":"entity.name.section.savane","begin":"(?:\\G|^)","end":"$","patterns":[{"include":"#basicMarkup"}]},"headings":{"patterns":[{"name":"markup.heading.1.title.savane","match":"^(=) (.+?) (=)(?=\\s*$)","captures":{"1":{"name":"punctuation.definition.header.begin.savane"},"2":{"patterns":[{"include":"#headingText"}]},"3":{"name":"punctuation.definition.header.end.savane"}}},{"name":"markup.heading.2.subtitle.savane","match":"^(==) (.+?) (==)(?=\\s*$)","captures":{"1":{"name":"punctuation.definition.header.begin.savane"},"2":{"patterns":[{"include":"#headingText"}]},"3":{"name":"punctuation.definition.header.end.savane"}}},{"name":"markup.heading.3.subsubtitle.savane","match":"^(===) (.+?) (===)(?=\\s*$)","captures":{"1":{"name":"punctuation.definition.header.begin.savane"},"2":{"patterns":[{"include":"#headingText"}]},"3":{"name":"punctuation.definition.header.end.savane"}}},{"name":"markup.heading.4.subsubsubtitle.savane","match":"^(====) (.+?) (====)(?=\\s*$)","captures":{"1":{"name":"punctuation.definition.header.begin.savane"},"2":{"patterns":[{"include":"#headingText"}]},"3":{"name":"punctuation.definition.header.end.savane"}}}]},"italic":{"name":"markup.italic.emphasis.savane","match":"(?:^|(?\u003c=[\\s\\(\u003e]))(_)(.+?)(_)(?=$|\\W)","captures":{"1":{"name":"punctuation.definition.markup.italic.begin.savane"},"2":{"name":"punctuation.definition.markup.italic.end.savane"}}},"itemID":{"name":"constant.numeric.integer.item-id.savane","match":"(?:\\G|^)(#)\\d+","captures":{"1":{"name":"punctuation.definition.item-id.savane"}}},"links":{"patterns":[{"name":"markup.link.reference.file.savane","match":"(\\(?)(files?) (#\\d+)( ([^),]*))?(?:(\\))|(,)(?=$| ))?","captures":{"1":{"patterns":[{"include":"etc#bracket"}]},"2":{"name":"storage.type.file.savane"},"3":{"patterns":[{"include":"#itemID"}]},"4":{"name":"meta.comment.savane"},"5":{"name":"string.unquoted.alt-text.savane"},"6":{"patterns":[{"include":"etc#bracket"}]},"7":{"patterns":[{"include":"etc#comma"}]}}},{"name":"markup.link.reference.$2.savane","match":"\\b((bug|comment|recipe|task|patch|rcp|sr|support)(?:(?\u003c!patch|rcp|sr|support)s)?)\\s{0,2}(#\\d+)","captures":{"1":{"name":"storage.type.$2.savane"},"3":{"patterns":[{"include":"#itemID"}]}}},{"name":"markup.link.bracketed.named.web-address.savane","match":"(\\[)((?:www\\.|//|(?:afs|file|https?|nfs|s?ftp):/{0,2})\\S+)(?:\\s+([^\\s\\]].*?))?(\\])","captures":{"1":{"patterns":[{"include":"etc#bracket"}]},"2":{"name":"constant.other.reference.link.markup.underline.savane"},"3":{"name":"entity.name.tag.link.description.savane"},"4":{"patterns":[{"include":"etc#bracket"}]}}},{"name":"markup.link.bracketed.unnamed.web-address.savane","match":"(\\[)((?:www\\.|//|(?:afs|file|https?|nfs|s?ftp):/{0,2})\\S+)(\\])","captures":{"1":{"patterns":[{"include":"etc#bracket"}]},"2":{"name":"constant.other.reference.link.markup.underline.savane"},"3":{"patterns":[{"include":"etc#bracket"}]}}},{"name":"markup.link.unbracketed.web-address.savane","match":"(?:(?:^|(?\u003c=[^;\\[/]))(?:afs|file|https?|nfs|s?ftp)://|(?:^|(?\u003c=\\s))www\\.)(?i:\u0026amp;|[^\\s\u0026]+[a-z0-9/^])++","captures":{"0":{"name":"constant.other.reference.link.markup.underline.savane"}}},{"name":"markup.link.unbracketed.mail-address.savane","match":"(?:^|(?\u003c=\\s))[-+\\w,.]+@(?:[-+\\w]+\\.)+[A-Za-z]+(?=$|\\s)","captures":{"0":{"name":"constant.other.reference.link.markup.underline.savane"}}}]},"lists":{"patterns":[{"name":"markup.list.unnumbered.savane","begin":"(?:^|\\G)(\\s?)((\\*+)) +","end":"$","patterns":[{"include":"#basicMarkup"}],"beginCaptures":{"1":{"name":"punctuation.whitespace.leading.indentation.savane"},"2":{"name":"keyword.operator.list.unnumbered.marker.savane"},"3":{"name":"punctuation.definition.list.unordered.savane"}}},{"name":"markup.list.numbered.savane","begin":"(?:^|\\G)(\\s?)(0+) +","end":"$","patterns":[{"include":"#basicMarkup"}],"beginCaptures":{"1":{"name":"punctuation.whitespace.leading.indentation.savane"},"2":{"name":"keyword.operator.list.numbered.marker.savane"},"3":{"name":"punctuation.definition.list.ordered.savane"}}}]},"nomarkup":{"name":"meta.nomarkup.block.savane","contentName":"markup.raw.literal.savane","begin":"(\\+)nomarkup(\\+)","end":"(-)nomarkup(-)","beginCaptures":{"0":{"name":"keyword.control.nomarkup.block.begin.savane"},"1":{"name":"punctuation.definition.keyword.begin.savane"},"2":{"name":"punctuation.definition.keyword.end.savane"}},"endCaptures":{"0":{"name":"keyword.control.nomarkup.block.end.savane"},"1":{"name":"punctuation.definition.keyword.begin.savane"},"2":{"name":"punctuation.definition.keyword.end.savane"}}},"quote":{"name":"markup.quote.block.savane","begin":"(?:^|\\G)\u003e","end":"$","patterns":[{"include":"#basicMarkup"}],"beginCaptures":{"0":{"name":"punctuation.section.quote.savane"}}},"richMarkup":{"patterns":[{"include":"#basicMarkup"},{"include":"#lists"},{"include":"#ruler"},{"include":"#verbatim"},{"include":"#quote"}]},"ruler":{"name":"meta.separator.horizontal-rule.ruler.savane","match":"^-{4}(?=\\s*$)","captures":{"0":{"name":"punctuation.definition.divider.savane"}}},"verbatim":{"name":"meta.verbatim-block.savane","contentName":"markup.raw.code.monospace.savane","begin":"^\\s*((\\+)verbatim(\\+))(?:\\s*(\\S.*?))?[ \\t]*$","end":"^\\s*((-)verbatim(-))(?:\\s*(\\S.*?))?[ \\t]*$","patterns":[{"include":"#verbatimInnards"}],"beginCaptures":{"1":{"name":"keyword.control.verbatim.block.begin.savane"},"2":{"name":"punctuation.definition.keyword.begin.savane"},"3":{"name":"punctuation.definition.keyword.end.savane"},"4":{"name":"invalid.illegal.unexpected-characters.savane"}},"endCaptures":{"1":{"name":"keyword.control.verbatim.block.end.savane"},"2":{"name":"punctuation.definition.keyword.begin.savane"},"3":{"name":"punctuation.definition.keyword.end.savane"},"4":{"name":"invalid.illegal.unexpected-characters.savane"}}},"verbatimInnards":{"begin":"\\+verbatim\\+","end":"\\-verbatim-","patterns":[{"include":"#verbatimInnards"}]}}}
|
@@ -1 +1 @@
|
|
1
|
-
{"name":"Literate Haskell","scopeName":"text.tex.latex.haskell","patterns":[{"name":"meta.embedded.block.haskell.latex.haskell","contentName":"source.haskell.embedded.latex.haskell","begin":"^((\\\\)begin)({)(code|spec)(})(\\s*$)?","end":"^((\\\\)end)({)\\4(})","patterns":[{"include":"source.haskell"}],"beginCaptures":{"1":{"name":"support.function.be.latex.haskell"},"2":{"name":"punctuation.definition.function.latex.haskell"},"3":{"name":"punctuation.definition.arguments.begin.latex.haskell"},"5":{"name":"punctuation.definition.arguments.end.latex.haskell"}},"endCaptures":{"1":{"name":"support.function.be.latex.haskell"},"2":{"name":"punctuation.definition.function.latex.haskell"},"3":{"name":"punctuation.definition.arguments.begin.latex.haskell"},"4":{"name":"punctuation.definition.arguments.end.latex.haskell"}}},{"name":"meta.embedded.haskell","begin":"^(?=[\u003e\u003c] )","end":"^(?![\u003e\u003c] )","patterns":[{"include":"#haskell_source"},{"name":"punctuation.definition.bird-track.haskell","match":"^\u003e "}]},{"name":"meta.embedded.text.haskell.latex.haskell","match":"(?\u003c!\\\\verb)\\|((:?[^|]|\\|\\|)+)\\|","captures":{"1":{"patterns":[{"include":"source.haskell"}]}}},{"include":"text.tex.latex"}],"repository":{"arrow":{"patterns":[{"name":"keyword.other.arrow.haskell","match":"(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"}]},"assignment_op":{"patterns":[{"match":"=","captures":{"0":{"name":"keyword.operator.assignment.haskell"}}}]},"attribute_name":{"patterns":[{"name":"entity.other.attribute-name.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"big_arrow":{"patterns":[{"name":"keyword.other.big-arrow.haskell","match":"(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"}]},"block_comment":{"patterns":[{"name":"comment.block.haddock.haskell","begin":"\\{-\\s*[|^]","end":"-\\}","patterns":[{"include":"#block_comment"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.haddock.haskell"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.haddock.haskell"}},"applyEndPatternLast":true},{"name":"comment.block.haskell","begin":"\\{-","end":"-\\}","patterns":[{"include":"#block_comment"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.block.start.haskell"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.end.haskell"}},"applyEndPatternLast":true}]},"c_preprocessor":{"patterns":[{"name":"meta.preprocessor.c.haskell","begin":"^(?:\u003e|\u003c) (?=#)","end":"(?\u003c!\\\\)(?=$)","patterns":[{"name":"keyword.control.c.haskell","match":"^#\\S+"}]}]},"characters":{"patterns":[{"name":"constant.character.escape.haskell","match":"\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\\u0026])"},{"name":"constant.character.escape.octal.haskell","match":"(?:\\\\o[0-7]+)"},{"name":"constant.character.escape.hexadecimal.haskell","match":"(?:\\\\x[0-9A-Fa-f]+)"},{"name":"constant.character.escape.control.haskell","match":"(?:\\\\\\^[A-Z@\\[\\]\\\\^_])"}]},"class_decl":{"patterns":[{"name":"meta.declaration.class.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(class)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.class.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"comma":{"patterns":[{"name":"punctuation.separator.comma.haskell","match":","}]},"comments":{"patterns":[{"begin":"(^(?:\u003e|\u003c) [ \\t]+)?(?=--+\\s+[|^])","end":"(?!\\G)","patterns":[{"name":"comment.line.double-dash.haddock.haskell","begin":"(--+)\\s+([|^])","end":"$","beginCaptures":{"1":{"name":"punctuation.definition.comment.haskell"},"2":{"name":"punctuation.definition.comment.haddock.haskell"}}}]},{"begin":"(^(?:\u003e|\u003c) [ \\t]+)?(?=--+(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))","end":"(?!\\G)","patterns":[{"name":"comment.line.double-dash.haskell","begin":"--","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.haskell"}}}]},{"include":"#block_comment"}]},"common_toplevel":{"patterns":[{"include":"#class_decl"},{"include":"#instance_decl"},{"include":"#deriving_instance_decl"},{"include":"#foreign_import"},{"include":"#regular_import"},{"include":"#data_decl"},{"include":"#type_alias"},{"include":"#c_preprocessor"}]},"ctor_type_declaration":{"patterns":[{"name":"meta.ctor.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*))(?:\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"patterns":[{"include":"#type_ctor"},{"include":"#infix_op"}]},"3":{"name":"keyword.other.double-colon.haskell"}}}]},"data_decl":{"patterns":[{"name":"meta.declaration.type.data.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(data|newtype)\\s+((?:(?!(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:=|--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))|(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))where(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|{-).|{-.*?-})*)","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#comments"},{"include":"#string"},{"include":"#where"},{"include":"#deriving"},{"include":"#via"},{"include":"#assignment_op"},{"include":"#type_ctor_forall"},{"include":"#type_ctor_alt"},{"match":"\\|","captures":{"0":{"name":"punctuation.separator.pipe.haskell"}}},{"name":"meta.declaration.type.data.record.block.haskell","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#comma"},{"include":"#record_field_declaration"}],"beginCaptures":{"0":{"name":"keyword.operator.record.begin.haskell"}},"endCaptures":{"0":{"name":"keyword.operator.record.end.haskell"}}},{"include":"#ctor_type_declaration"}],"beginCaptures":{"2":{"name":"keyword.other.data.haskell"},"3":{"name":"meta.type-signature.haskell","patterns":[{"include":"#family_and_instance"},{"include":"#type_signature"}]}}}]},"deriving":{"patterns":[{"include":"#deriving_list"},{"include":"#deriving_simple"},{"include":"#deriving_keyword"}]},"deriving_instance_decl":{"patterns":[{"name":"meta.declaration.instance.deriving.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s+|(deriving)\\s+(via)\\s+(.*)\\s+)?(instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#pragma"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"},"3":{"patterns":[{"include":"#deriving_strategies"}]},"4":{"name":"keyword.other.haskell"},"5":{"name":"keyword.other.haskell"},"6":{"name":"meta.type-signature.haskell","patterns":[{"include":"#type_signature"}]},"7":{"name":"keyword.other.haskell"}}}]},"deriving_keyword":{"patterns":[{"name":"meta.deriving.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#deriving_strategies"}]}}}]},"deriving_list":{"patterns":[{"name":"meta.deriving.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s*\\(","end":"\\)","patterns":[{"match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"entity.other.inherited-class.haskell"}}}],"beginCaptures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#deriving_strategies"}]}}}]},"deriving_simple":{"patterns":[{"name":"meta.deriving.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s*([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#deriving_strategies"}]},"3":{"name":"entity.other.inherited-class.haskell"}}}]},"deriving_strategies":{"patterns":[{"name":"meta.deriving.strategy.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(stock|newtype|anyclass)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"}}}]},"double_colon_operator":{"patterns":[{"name":"keyword.other.double-colon.haskell","match":"(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"}]},"empty_list":{"patterns":[{"name":"constant.language.empty-list.haskell","match":"\\[\\]"}]},"family_and_instance":{"patterns":[{"name":"keyword.other.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(family|instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"foreign_import":{"patterns":[{"name":"meta.foreign.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(foreign)\\s+(import|export)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"match":"(?:un)?safe","captures":{"0":{"name":"keyword.other.haskell"}}},{"include":"#function_type_declaration"},{"include":"#haskell_expr"},{"include":"#comments"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"},"3":{"name":"keyword.other.haskell"}}}]},"function_name":{"patterns":[{"name":"entity.name.function.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"}]}}}]},"function_type_declaration":{"patterns":[{"name":"meta.function.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )|(?=(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"patterns":[{"include":"#function_name"},{"include":"#infix_op"}]},"3":{"name":"keyword.other.double-colon.haskell"}}}]},"function_type_declaration_with_scoped_type":{"patterns":[{"include":"#scoped_type_override"},{"include":"#function_type_declaration"},{"include":"#multiline_type_declaration"}]},"haskell_expr":{"patterns":[{"include":"#infix_function"},{"include":"#unit"},{"include":"#empty_list"},{"include":"#quasi_quotes"},{"include":"#keywords"},{"include":"#pragma"},{"include":"#string"},{"include":"#newline_escape"},{"include":"#quoted_character"},{"include":"#comments"},{"include":"#infix_op"},{"include":"#comma"},{"include":"#lit_num"},{"include":"#scoped_type"},{"include":"#type_application"},{"include":"#operator"},{"include":"#identifier"},{"include":"#type_ctor"}]},"haskell_source":{"patterns":[{"include":"#shebang"},{"include":"#module_decl"},{"include":"#haskell_toplevel"}]},"haskell_toplevel":{"patterns":[{"include":"#liquidhaskell_annotation"},{"include":"#common_toplevel"},{"include":"#function_type_declaration_with_scoped_type"},{"include":"#haskell_expr"}]},"hsig_decl":{"patterns":[{"name":"meta.declaration.module.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(signature)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#comments"},{"include":"#module_name"},{"include":"#module_exports"},{"include":"#invalid"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"hsig_source":{"patterns":[{"include":"#hsig_decl"},{"include":"#hsig_toplevel"}]},"hsig_toplevel":{"patterns":[{"include":"#common_toplevel"},{"include":"#function_type_declaration"},{"include":"#lazy_function_type_signature"},{"include":"#comments"}]},"identifier":{"patterns":[{"name":"identifier.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.function.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(abs|acos|acosh|all|and|any|appendFile|asTypeOf|asin|asinh|atan|atan2|atanh|break|ceiling|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|errorWithoutStackTrace|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldMap|foldl|foldl1|foldr|foldr1|fromEnum|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|head|id|init|interact|ioError|isDenormalized|isIEEE|isInfinite|isNaN|isNegativeZero|iterate|last|lcm|length|lex|lines|log|logBase|lookup|map|mapM|mapM_|mappend|max|maxBound|maximum|maybe|mconcat|mempty|min|minBound|minimum|mod|negate|not|notElem|null|odd|or|otherwise|pi|pred|print|product|properFraction|pure|putChar|putStr|putStrLn|quot|quotRem|read|readFile|readIO|readList|readLn|readParen|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequenceA|sequence_|show|showChar|showList|showParen|showString|shows|showsPrec|significand|signum|sin|sinh|snd|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|toEnum|toInteger|toRational|traverse|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}]},"infix_function":{"patterns":[{"name":"keyword.operator.function.infix.haskell","match":"(`)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(`)","captures":{"1":{"name":"punctuation.definition.entity.haskell"},"2":{"name":"punctuation.definition.entity.haskell"}}}]},"infix_op":{"patterns":[{"name":"entity.name.function.operator.haskell","match":"(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.operator.prelude.haskell","match":"^\\((\\!\\!|\\$\\!|\\$|\\\u0026\\\u0026|\\*|\\*\\*|\\*\\\u003e|\\+|\\+\\+|\\-|\\.|\\/|\\/\\=|\\\u003c\\$|\\\u003c\\$\\\u003e|\\\u003c|\\\u003c\\*|\\\u003c\\*\\\u003e|\\\u003c\\=|\\=\\\u003c\\\u003c|\\=\\=|\\\u003e|\\\u003e\\=|\\\u003e\\\u003e|\\\u003e\\\u003e\\=|\\^|\\^\\^|\\|\\|)\\)$"}]}}}]},"instance_decl":{"patterns":[{"name":"meta.declaration.instance.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#pragma"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"invalid":{"patterns":[{"name":"invalid.illegal.character-not-allowed-here.haskell","match":"\\S+"}]},"keywords":{"patterns":[{"name":"keyword.other.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(deriving|where|data|type|newtype)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"name":"keyword.operator.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(infix[lr]?)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"name":"keyword.control.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(do|if|then|else|case|of|let|in|default|mdo|rec|proc)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"lazy_function_type_signature":{"patterns":[{"name":"meta.function.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*))\\s*$","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#double_colon_operator"},{"include":"#type_signature"}],"beginCaptures":{"2":{"patterns":[{"include":"#function_name"},{"include":"#infix_op"}]}}}]},"liquidhaskell_annotation":{"patterns":[{"name":"block.liquidhaskell.haskell","contentName":"block.liquidhaskell.annotation.haskell","begin":"\\{-@(?!#)","end":"@-\\}","patterns":[{"include":"annotation.liquidhaskell.haskell"}]}]},"lit_num":{"patterns":[{"name":"constant.numeric.hexfloat.haskell","match":"0[xX][0-9a-fA-F_]*(?:\\.[0-9a-fA-F_]+(?:[pP][+-]?[0-9_]+)?|[pP][+-]?[0-9_]+)"},{"name":"constant.numeric.hexadecimal.haskell","match":"0[xX][_0-9a-fA-F]+"},{"name":"constant.numeric.octal.haskell","match":"0[oO][_0-7]+"},{"name":"constant.numeric.binary.haskell","match":"0[bB][_01]+"},{"name":"constant.numeric.float.haskell","match":"[0-9][0-9_]*(?:\\.[0-9_]+(?:[eE][+-]?[0-9_]+)?|[eE][+-]?[0-9_]+)"},{"name":"constant.numeric.decimal.haskell","match":"[0-9][_0-9]*"}]},"module_decl":{"patterns":[{"name":"meta.declaration.module.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(module)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#comments"},{"include":"#module_name"},{"include":"#module_exports"},{"include":"#invalid"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"module_exports":{"patterns":[{"name":"meta.declaration.exports.haskell","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#c_preprocessor"},{"begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(module)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","patterns":[{"include":"#invalid"}],"beginCaptures":{"1":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"support.other.module.haskell"}}},{"include":"#function_name"},{"include":"#type_name"},{"include":"#comma"},{"include":"#infix_op"},{"name":"meta.other.constructor-list.haskell","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#c_preprocessor"},{"include":"#type_ctor"},{"include":"#attribute_name"},{"include":"#comma"},{"name":"keyword.operator.wildcard.haskell","match":"\\.\\."},{"include":"#infix_op"}]}],"applyEndPatternLast":true}]},"module_name":{"patterns":[{"name":"support.other.module.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"module_name_prefix":{"patterns":[{"name":"support.other.module.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\."}]},"multiline_type_declaration":{"patterns":[{"name":"meta.multiline.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","end":"^(?!(?:\u003e|\u003c) \\1|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )|(?=(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.double-colon.haskell"}}}]},"newline_escape":{"patterns":[{"name":"markup.other.escape.newline.haskell","match":"\\\\$"}]},"operator":{"patterns":[{"name":"keyword.operator.haskell","match":"(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.operator.prelude.haskell","match":"^(\\!\\!|\\$\\!|\\$|\\\u0026\\\u0026|\\*|\\*\\*|\\*\\\u003e|\\+|\\+\\+|\\-|\\.|\\/|\\/\\=|\\\u003c\\$|\\\u003c\\$\\\u003e|\\\u003c|\\\u003c\\*|\\\u003c\\*\\\u003e|\\\u003c\\=|\\=\\\u003c\\\u003c|\\=\\=|\\\u003e|\\\u003e\\=|\\\u003e\\\u003e|\\\u003e\\\u003e\\=|\\^|\\^\\^|\\|\\|)$"}]}}}]},"pragma":{"patterns":[{"name":"meta.preprocessor.haskell","begin":"\\{-#","end":"#-\\}","patterns":[{"name":"keyword.other.preprocessor.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))((?i:NOTINLINE CONSTRUCTORLIKE|NOINLINE CONSTRUCTORLIKE|INLINE CONSTRUCTORLIKE|SPECIALISE NOTINLINE|SPECIALIZE NOTINLINE|SPECIALISE NOINLINE|SPECIALIZE NOINLINE|NOTINLINE CONLIKE|SPECIALISE INLINE|SPECIALIZE INLINE|NOINLINE CONLIKE|VECTORISE SCALAR|VECTORIZE SCALAR|OPTIONS_HADDOCK|INLINE CONLIKE|OPTIONS_DERIVE|OPTIONS_CATCH|OPTIONS_NHC98|OPTIONS_HUGS|OVERLAPPABLE|NOVECTORISE|NOVECTORIZE|OPTIONS_GHC|OPTIONS_JHC|OPTIONS_YHC|OVERLAPPING|DEPRECATED|INCOHERENT|INLINEABLE|SPECIALISE|SPECIALIZE|GENERATED|INLINABLE|NOTINLINE|VECTORISE|VECTORIZE|CONTRACT|LANGUAGE|NOINLINE|NOUNPACK|OVERLAPS|INCLUDE|MINIMAL|OPTIONS|WARNING|CFILES|INLINE|SOURCE|UNPACK|CTYPE|RULES|CORE|LINE|ANN|SCC))(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}]},"quasi_quotes":{"patterns":[{"contentName":"quoted.quasiquotes.qq-$3.haskell","begin":"(\\[)((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))(\\|)","end":"(\\|)(\\])","beginCaptures":{"1":{"name":"punctuation.definition.quasiquotes.begin.haskell"},"2":{"name":"entity.name.tag.haskell","patterns":[{"include":"#module_name_prefix"}]}},"endCaptures":{"2":{"name":"punctuation.definition.quasiquotes.end.haskell"}}}]},"quoted_character":{"patterns":[{"name":"string.quoted.single.haskell","match":"(')((?:[\\ -\\[\\]-~]|\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\\u0026])|(?:\\\\o[0-7]+)|(?:\\\\x[0-9A-Fa-f]+)|(?:\\\\\\^[A-Z@\\[\\]\\\\^_])|(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))(')","captures":{"1":{"name":"punctuation.definition.string.begin.haskell"},"2":{"patterns":[{"include":"#characters"}]},"3":{"name":"punctuation.definition.string.end.haskell"}}}]},"record_field_declaration":{"patterns":[{"name":"meta.record-field.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))","end":"(?=(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))|})","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"patterns":[{"include":"#attribute_name"},{"include":"#infix_op"}]},"2":{"name":"keyword.other.double-colon.haskell"}}}]},"regular_import":{"patterns":[{"name":"meta.import.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(import)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#module_name"},{"include":"#module_exports"},{"match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(qualified|as|hiding)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"}}},{"include":"#comments"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}}}]},"scoped_type":{"patterns":[{"match":"\\(((?\u003cparen\u003e(?:(?!\\(|\\)).|\\(\\g\u003cparen\u003e\\))*)(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))(?\u003cparen2\u003e(?:(?!\\(|\\)).|\\(\\g\u003cparen2\u003e\\))*))\\)","captures":{"1":{"patterns":[{"include":"#haskell_expr"}]}}},{"match":"((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))((?:(?!{-|(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=|--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))|$).|{-.*?-})*)","captures":{"1":{"name":"keyword.other.double-colon.haskell"},"2":{"name":"meta.type-signature.haskell","patterns":[{"include":"#type_signature"}]}}}]},"scoped_type_override":{"patterns":[{"match":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))((?:(?!{-|(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))).|{-.*?-})*)((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","captures":{"2":{"patterns":[{"include":"#identifier"}]},"3":{"name":"keyword.other.double-colon.haskell"},"4":{"name":"meta.type-signature.haskell","patterns":[{"include":"#type_signature"}]},"5":{"patterns":[{"include":"#assignment_op"},{"include":"#operator"}]}}}]},"shebang":{"patterns":[{"name":"comment.line.shebang.haskell","match":"^\\#\\!.*\\brunhaskell\\b.*$"}]},"string":{"patterns":[{"name":"string.quoted.double.haskell","begin":"\"","end":"\"","patterns":[{"include":"#characters"},{"begin":"\\\\\\s","end":"\\\\","patterns":[{"include":"#invalid"}],"beginCaptures":{"0":{"name":"markup.other.escape.newline.begin.haskell"}},"endCaptures":{"0":{"name":"markup.other.escape.newline.end.haskell"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.haskell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.haskell"}}}]},"type_alias":{"patterns":[{"name":"meta.declaration.type.type.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(type)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#comments"},{"include":"#family_and_instance"},{"include":"#where"},{"include":"#assignment_op"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.type.haskell"}}}]},"type_application":{"patterns":[{"name":"other.type-application.haskell","match":"(\u003c?\\s+)(@)(\\'?\\((?\u003cparen\u003e(?:(?!\\(|\\)).|\\(\\g\u003cparen\u003e\\))*)\\)|\\'?\\[(?\u003cbrack\u003e(?:(?!\\[|\\]).|\\[\\g\u003cbrack\u003e\\])*)\\]|\"(?\u003cquot\u003e(?:(?!\"|\").|\"\\g\u003cquot\u003e\")*)\"|'(?:[\\ -\\[\\]-~]|\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\\u0026])|(?:\\\\o[0-7]+)|(?:\\\\x[0-9A-Fa-f]+)|(?:\\\\\\^[A-Z@\\[\\]\\\\^_])|(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))'|\\S+)","captures":{"2":{"patterns":[{"include":"#operator"}]},"3":{"patterns":[{"include":"#type_signature"}]}}}]},"type_ctor":{"patterns":[{"name":"entity.name.tag.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.tag.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(EQ|GT|LT|Left|Right|True|False)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}]},"type_ctor_alt":{"patterns":[{"contentName":"meta.type-signature.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s*","end":"^(?!^(?:\u003e|\u003c) [ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))","patterns":[{"include":"#comments"},{"include":"#type_signature"}],"beginCaptures":{"1":{"patterns":[{"include":"#type_ctor"}]}}}]},"type_ctor_forall":{"patterns":[{"contentName":"meta.type-signature.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))forall(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!^(?:\u003e|\u003c) [ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))","patterns":[{"include":"#comments"},{"match":"\\G.*?(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))","captures":{"0":{"patterns":[{"include":"#type_signature"}]}}},{"match":"\\G.*?\\.","captures":{"0":{"patterns":[{"include":"#type_signature"}]}}},{"include":"#big_arrow"},{"include":"#type_variable"},{"begin":"\\(","end":"\\)","patterns":[{"include":"#type_signature"}]},{"include":"#type_ctor_alt"}],"beginCaptures":{"0":{"patterns":[{"include":"#type_signature"}]}}}]},"type_name":{"patterns":[{"name":"entity.name.type.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"entity.other.inherited-class.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(Applicative|Bounded|Enum|Eq|Floating|Foldable|Fractional|Functor|Integral|Monad|Monoid|Num|Ord|Read|Real|RealFloat|RealFrac|Show|Traversable)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"name":"support.class.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(Either|FilePath|IO|IOError|Integer|Ordering|Rational|ReadS|ShowS|String|Bool|Char|Double|Float|Int|Just|Maybe|Nothing|Word)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}]},"type_signature":{"patterns":[{"include":"#pragma"},{"include":"#comments"},{"name":"keyword.other.forall.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))forall(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"include":"#quoted_character"},{"name":"other.promoted.haskell","match":"'(\\(\\))","captures":{"1":{"patterns":[{"include":"#unit"}]}}},{"include":"#unit"},{"name":"other.promoted.haskell","match":"'(\\[\\])","captures":{"1":{"patterns":[{"include":"#empty_list"}]}}},{"include":"#empty_list"},{"include":"#string"},{"include":"#arrow"},{"include":"#big_arrow"},{"name":"other.promoted.haskell","match":"'((?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+)","captures":{"1":{"patterns":[{"include":"#operator"}]}}},{"include":"#operator"},{"include":"#type_variable"},{"name":"other.promoted.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}'])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))'([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"patterns":[{"include":"#type_name"}]}}},{"include":"#type_name"},{"include":"#lit_num"}]},"type_variable":{"patterns":[{"name":"variable.other.generic-type.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"unit":{"patterns":[{"name":"constant.language.unit.haskell","match":"\\(\\)"}]},"via":{"patterns":[{"include":"#via_list"},{"include":"#via_list_newline"},{"include":"#via_indent"},{"include":"#via_simple"},{"include":"#via_keyword"}]},"via_indent":{"patterns":[{"name":"meta.via.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(via)\\s*","end":"^(?!(?:\u003e|\u003c) \\1|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}}}]},"via_keyword":{"patterns":[{"name":"meta.via.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"}}}]},"via_list":{"patterns":[{"name":"meta.via.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*\\(","end":"\\)","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"via_list_newline":{"patterns":[{"name":"meta.via.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*","end":"$","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"via_simple":{"patterns":[{"name":"meta.via.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#type_signature"}]}}}]},"where":{"patterns":[{"name":"keyword.other.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))where(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}
|
1
|
+
{"name":"Literate Haskell","scopeName":"text.tex.latex.haskell","patterns":[{"name":"meta.embedded.block.haskell.latex.haskell","contentName":"source.haskell.embedded.latex.haskell","begin":"^((\\\\)begin)({)(code|spec)(})(\\s*$)?","end":"^((\\\\)end)({)\\4(})","patterns":[{"include":"source.haskell"}],"beginCaptures":{"1":{"name":"support.function.be.latex.haskell"},"2":{"name":"punctuation.definition.function.latex.haskell"},"3":{"name":"punctuation.definition.arguments.begin.latex.haskell"},"5":{"name":"punctuation.definition.arguments.end.latex.haskell"}},"endCaptures":{"1":{"name":"support.function.be.latex.haskell"},"2":{"name":"punctuation.definition.function.latex.haskell"},"3":{"name":"punctuation.definition.arguments.begin.latex.haskell"},"4":{"name":"punctuation.definition.arguments.end.latex.haskell"}}},{"name":"meta.embedded.haskell","begin":"^(?=[\u003e\u003c] )","end":"^(?![\u003e\u003c] )","patterns":[{"include":"#haskell_source"},{"name":"punctuation.definition.bird-track.haskell","match":"^\u003e "}]},{"name":"meta.embedded.text.haskell.latex.haskell","match":"(?\u003c!\\\\verb)\\|((:?[^|]|\\|\\|)+)\\|","captures":{"1":{"patterns":[{"include":"source.haskell"}]}}},{"include":"text.tex.latex"}],"repository":{"arrow":{"patterns":[{"name":"keyword.other.arrow.haskell","match":"(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"}]},"assignment_op":{"patterns":[{"match":"=","captures":{"0":{"name":"keyword.operator.assignment.haskell"}}}]},"attribute_name":{"patterns":[{"name":"entity.other.attribute-name.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"big_arrow":{"patterns":[{"name":"keyword.other.big-arrow.haskell","match":"(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"}]},"block_comment":{"patterns":[{"name":"comment.block.haddock.haskell","begin":"\\{-\\s*[|^]","end":"-\\}","patterns":[{"include":"#block_comment"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.haddock.haskell"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.haddock.haskell"}},"applyEndPatternLast":true},{"name":"comment.block.haskell","begin":"\\{-","end":"-\\}","patterns":[{"include":"#block_comment"}],"beginCaptures":{"0":{"name":"punctuation.definition.comment.block.start.haskell"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.block.end.haskell"}},"applyEndPatternLast":true}]},"c_preprocessor":{"patterns":[{"name":"meta.preprocessor.c.haskell","begin":"^(?:\u003e|\u003c) (?=#)","end":"(?\u003c!\\\\)(?=$)","patterns":[{"name":"keyword.control.c.haskell","match":"^#\\S+"}]}]},"characters":{"patterns":[{"name":"constant.character.escape.haskell","match":"\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\\u0026])"},{"name":"constant.character.escape.octal.haskell","match":"(?:\\\\o[0-7]+)"},{"name":"constant.character.escape.hexadecimal.haskell","match":"(?:\\\\x[0-9A-Fa-f]+)"},{"name":"constant.character.escape.control.haskell","match":"(?:\\\\\\^[A-Z@\\[\\]\\\\^_])"}]},"class_decl":{"patterns":[{"name":"meta.declaration.class.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(class)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.class.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"comma":{"patterns":[{"name":"punctuation.separator.comma.haskell","match":","}]},"comments":{"patterns":[{"begin":"(^(?:\u003e|\u003c) [ \\t]+)?(?=--+\\s+[|^])","end":"(?!\\G)","patterns":[{"begin":"(--+)\\s+([|^])(.*)","end":"^(?!--+)","patterns":[{"match":"^(--+)(.*)","captures":{"1":{"name":"punctuation.definition.comment.haskell"},"2":{"name":"comment.line.double-dash.haddock.haskell"}}}],"beginCaptures":{"1":{"name":"punctuation.definition.comment.haskell"},"2":{"name":"punctuation.definition.comment.haddock.haskell"},"3":{"name":"comment.line.double-dash.haddock.haskell"}}}]},{"begin":"(^(?:\u003e|\u003c) [ \\t]+)?(?=--+(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))","end":"(?!\\G)","patterns":[{"name":"comment.line.double-dash.haskell","begin":"--+","end":"$","beginCaptures":{"0":{"name":"punctuation.definition.comment.haskell"}}}]},{"include":"#block_comment"}]},"common_toplevel":{"patterns":[{"include":"#class_decl"},{"include":"#instance_decl"},{"include":"#deriving_instance_decl"},{"include":"#foreign_import"},{"include":"#regular_import"},{"include":"#data_decl"},{"include":"#type_alias"},{"include":"#c_preprocessor"}]},"ctor_type_declaration":{"patterns":[{"name":"meta.ctor.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*))(?:\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"patterns":[{"include":"#type_ctor"},{"include":"#infix_op"}]},"3":{"name":"keyword.other.double-colon.haskell"}}}]},"data_decl":{"patterns":[{"name":"meta.declaration.type.data.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(data|newtype)\\s+((?:(?!(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:=|--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))|(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))where(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|{-).|{-.*?-})*)","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#comments"},{"include":"#string"},{"include":"#where"},{"include":"#deriving"},{"include":"#via"},{"include":"#assignment_op"},{"include":"#type_ctor_forall"},{"include":"#type_ctor_alt"},{"match":"\\|","captures":{"0":{"name":"punctuation.separator.pipe.haskell"}}},{"name":"meta.declaration.type.data.record.block.haskell","begin":"\\{","end":"\\}","patterns":[{"include":"#comments"},{"include":"#comma"},{"include":"#record_field_declaration"}],"beginCaptures":{"0":{"name":"keyword.operator.record.begin.haskell"}},"endCaptures":{"0":{"name":"keyword.operator.record.end.haskell"}}},{"include":"#ctor_type_declaration"}],"beginCaptures":{"2":{"name":"keyword.other.data.haskell"},"3":{"name":"meta.type-signature.haskell","patterns":[{"include":"#family_and_instance"},{"include":"#type_signature"}]}}}]},"deriving":{"patterns":[{"include":"#deriving_list"},{"include":"#deriving_simple"},{"include":"#deriving_keyword"}]},"deriving_instance_decl":{"patterns":[{"name":"meta.declaration.instance.deriving.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s+|(deriving)\\s+(via)\\s+(.*)\\s+)?(instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#pragma"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"},"3":{"patterns":[{"include":"#deriving_strategies"}]},"4":{"name":"keyword.other.haskell"},"5":{"name":"keyword.other.haskell"},"6":{"name":"meta.type-signature.haskell","patterns":[{"include":"#type_signature"}]},"7":{"name":"keyword.other.haskell"}}}]},"deriving_keyword":{"patterns":[{"name":"meta.deriving.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#deriving_strategies"}]}}}]},"deriving_list":{"patterns":[{"name":"meta.deriving.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s*\\(","end":"\\)","patterns":[{"match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"entity.other.inherited-class.haskell"}}}],"beginCaptures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#deriving_strategies"}]}}}]},"deriving_simple":{"patterns":[{"name":"meta.deriving.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(deriving)(?:\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))?)\\s*([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#deriving_strategies"}]},"3":{"name":"entity.other.inherited-class.haskell"}}}]},"deriving_strategies":{"patterns":[{"name":"meta.deriving.strategy.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(stock|newtype|anyclass)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"}}}]},"double_colon_operator":{"patterns":[{"name":"keyword.other.double-colon.haskell","match":"(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))"}]},"empty_list":{"patterns":[{"name":"constant.language.empty-list.haskell","match":"\\[\\]"}]},"family_and_instance":{"patterns":[{"name":"keyword.other.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(family|instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"foreign_import":{"patterns":[{"name":"meta.foreign.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(foreign)\\s+(import|export)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"match":"(?:un)?safe","captures":{"0":{"name":"keyword.other.haskell"}}},{"include":"#function_type_declaration"},{"include":"#haskell_expr"},{"include":"#comments"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"},"3":{"name":"keyword.other.haskell"}}}]},"function_name":{"patterns":[{"name":"entity.name.function.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"}]}}}]},"function_type_declaration":{"patterns":[{"name":"meta.function.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )|(?=(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"patterns":[{"include":"#function_name"},{"include":"#infix_op"}]},"3":{"name":"keyword.other.double-colon.haskell"}}}]},"function_type_declaration_with_scoped_type":{"patterns":[{"include":"#scoped_type_override"},{"include":"#function_type_declaration"},{"include":"#multiline_type_declaration"}]},"haskell_expr":{"patterns":[{"include":"#infix_function"},{"include":"#unit"},{"include":"#empty_list"},{"include":"#quasi_quotes"},{"include":"#keywords"},{"include":"#pragma"},{"include":"#string"},{"include":"#newline_escape"},{"include":"#quoted_character"},{"include":"#comments"},{"include":"#infix_op"},{"include":"#comma"},{"include":"#lit_num"},{"include":"#scoped_type"},{"include":"#type_application"},{"include":"#operator"},{"include":"#identifier"},{"include":"#type_ctor"}]},"haskell_source":{"patterns":[{"include":"#shebang"},{"include":"#module_decl"},{"include":"#haskell_toplevel"}]},"haskell_toplevel":{"patterns":[{"include":"#liquidhaskell_annotation"},{"include":"#common_toplevel"},{"include":"#function_type_declaration_with_scoped_type"},{"include":"#haskell_expr"}]},"hsig_decl":{"patterns":[{"name":"meta.declaration.module.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(signature)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#comments"},{"include":"#module_name"},{"include":"#module_exports"},{"include":"#invalid"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"hsig_source":{"patterns":[{"include":"#hsig_decl"},{"include":"#hsig_toplevel"}]},"hsig_toplevel":{"patterns":[{"include":"#common_toplevel"},{"include":"#function_type_declaration"},{"include":"#lazy_function_type_signature"},{"include":"#comments"}]},"identifier":{"patterns":[{"name":"identifier.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.function.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(abs|acos|acosh|all|and|any|appendFile|asTypeOf|asin|asinh|atan|atan2|atanh|break|ceiling|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|errorWithoutStackTrace|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldMap|foldl|foldl1|foldr|foldr1|fromEnum|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|head|id|init|interact|ioError|isDenormalized|isIEEE|isInfinite|isNaN|isNegativeZero|iterate|last|lcm|length|lex|lines|log|logBase|lookup|map|mapM|mapM_|mappend|max|maxBound|maximum|maybe|mconcat|mempty|min|minBound|minimum|mod|negate|not|notElem|null|odd|or|otherwise|pi|pred|print|product|properFraction|pure|putChar|putStr|putStrLn|quot|quotRem|read|readFile|readIO|readList|readLn|readParen|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequenceA|sequence_|show|showChar|showList|showParen|showString|shows|showsPrec|significand|signum|sin|sinh|snd|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|toEnum|toInteger|toRational|traverse|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}]},"infix_function":{"patterns":[{"name":"keyword.operator.function.infix.haskell","match":"(`)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(`)","captures":{"1":{"name":"punctuation.definition.entity.haskell"},"2":{"name":"punctuation.definition.entity.haskell"}}}]},"infix_op":{"patterns":[{"name":"entity.name.function.operator.haskell","match":"(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.operator.prelude.haskell","match":"^\\((\\!\\!|\\$\\!|\\$|\\\u0026\\\u0026|\\*|\\*\\*|\\*\\\u003e|\\+|\\+\\+|\\-|\\.|\\/|\\/\\=|\\\u003c\\$|\\\u003c\\$\\\u003e|\\\u003c|\\\u003c\\*|\\\u003c\\*\\\u003e|\\\u003c\\=|\\=\\\u003c\\\u003c|\\=\\=|\\\u003e|\\\u003e\\=|\\\u003e\\\u003e|\\\u003e\\\u003e\\=|\\^|\\^\\^|\\|\\|)\\)$"}]}}}]},"instance_decl":{"patterns":[{"name":"meta.declaration.instance.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(instance)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#pragma"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"invalid":{"patterns":[{"name":"invalid.illegal.character-not-allowed-here.haskell","match":"\\S+"}]},"keywords":{"patterns":[{"name":"keyword.other.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(deriving|where|data|type|newtype|pattern)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"name":"keyword.operator.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(infix[lr]?)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"name":"keyword.control.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(do|if|then|else|case|of|let|in|default|mdo|rec|proc)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"lazy_function_type_signature":{"patterns":[{"name":"meta.function.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*))\\s*$","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#double_colon_operator"},{"include":"#type_signature"}],"beginCaptures":{"2":{"patterns":[{"include":"#function_name"},{"include":"#infix_op"}]}}}]},"liquidhaskell_annotation":{"patterns":[{"name":"block.liquidhaskell.haskell","contentName":"block.liquidhaskell.annotation.haskell","begin":"\\{-@(?!#)","end":"@-\\}","patterns":[{"include":"annotation.liquidhaskell.haskell"}]}]},"lit_num":{"patterns":[{"name":"constant.numeric.hexfloat.haskell","match":"0[xX][0-9a-fA-F_]*(?:\\.[0-9a-fA-F_]+(?:[pP][+-]?[0-9_]+)?|[pP][+-]?[0-9_]+)"},{"name":"constant.numeric.hexadecimal.haskell","match":"0[xX][_0-9a-fA-F]+"},{"name":"constant.numeric.octal.haskell","match":"0[oO][_0-7]+"},{"name":"constant.numeric.binary.haskell","match":"0[bB][_01]+"},{"name":"constant.numeric.float.haskell","match":"[0-9][0-9_]*(?:\\.[0-9_]+(?:[eE][+-]?[0-9_]+)?|[eE][+-]?[0-9_]+)"},{"name":"constant.numeric.decimal.haskell","match":"[0-9][_0-9]*"}]},"module_decl":{"patterns":[{"name":"meta.declaration.module.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(module)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#pragma"},{"include":"#comments"},{"include":"#module_name"},{"include":"#module_exports"},{"include":"#invalid"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"module_exports":{"patterns":[{"name":"meta.declaration.exports.haskell","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#c_preprocessor"},{"begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(module)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","patterns":[{"include":"#invalid"}],"beginCaptures":{"1":{"name":"keyword.other.haskell"}},"endCaptures":{"1":{"name":"support.other.module.haskell"}}},{"include":"#pattern_name"},{"include":"#type_exportImport"},{"include":"#function_name"},{"include":"#type_name"},{"include":"#comma"},{"include":"#infix_op"},{"name":"meta.other.constructor-list.haskell","begin":"\\(","end":"\\)","patterns":[{"include":"#comments"},{"include":"#c_preprocessor"},{"include":"#type_ctor"},{"include":"#attribute_name"},{"include":"#comma"},{"name":"keyword.operator.wildcard.haskell","match":"\\.\\."},{"include":"#infix_op"}]}],"applyEndPatternLast":true}]},"module_name":{"patterns":[{"name":"support.other.module.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"module_name_prefix":{"patterns":[{"name":"support.other.module.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\."}]},"multiline_type_declaration":{"patterns":[{"name":"meta.multiline.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","end":"^(?!(?:\u003e|\u003c) \\1|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )|(?=(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.double-colon.haskell"}}}]},"newline_escape":{"patterns":[{"name":"markup.other.escape.newline.haskell","match":"\\\\$"}]},"operator":{"patterns":[{"name":"keyword.operator.haskell","match":"(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.operator.prelude.haskell","match":"^(\\!\\!|\\$\\!|\\$|\\\u0026\\\u0026|\\*|\\*\\*|\\*\\\u003e|\\+|\\+\\+|\\-|\\.|\\/|\\/\\=|\\\u003c\\$|\\\u003c\\$\\\u003e|\\\u003c|\\\u003c\\*|\\\u003c\\*\\\u003e|\\\u003c\\=|\\=\\\u003c\\\u003c|\\=\\=|\\\u003e|\\\u003e\\=|\\\u003e\\\u003e|\\\u003e\\\u003e\\=|\\^|\\^\\^|\\|\\|)$"}]}}}]},"pattern_name":{"patterns":[{"name":"meta.declaration.export.qualified.pattern.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(pattern)\\s+([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_ctor"},{"include":"#infix_op"}]}}}]},"pragma":{"patterns":[{"name":"meta.preprocessor.haskell","begin":"\\{-#","end":"#-\\}","patterns":[{"name":"keyword.other.preprocessor.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))((?i:NOTINLINE CONSTRUCTORLIKE|NOINLINE CONSTRUCTORLIKE|INLINE CONSTRUCTORLIKE|SPECIALISE NOTINLINE|SPECIALIZE NOTINLINE|SPECIALISE NOINLINE|SPECIALIZE NOINLINE|NOTINLINE CONLIKE|SPECIALISE INLINE|SPECIALIZE INLINE|NOINLINE CONLIKE|VECTORISE SCALAR|VECTORIZE SCALAR|OPTIONS_HADDOCK|INLINE CONLIKE|OPTIONS_DERIVE|OPTIONS_CATCH|OPTIONS_NHC98|OPTIONS_HUGS|OVERLAPPABLE|NOVECTORISE|NOVECTORIZE|OPTIONS_GHC|OPTIONS_JHC|OPTIONS_YHC|OVERLAPPING|DEPRECATED|INCOHERENT|INLINEABLE|SPECIALISE|SPECIALIZE|GENERATED|INLINABLE|NOTINLINE|VECTORISE|VECTORIZE|COMPLETE|CONTRACT|LANGUAGE|NOINLINE|NOUNPACK|OVERLAPS|INCLUDE|MINIMAL|OPTIONS|WARNING|CFILES|COLUMN|INLINE|SOURCE|UNPACK|CTYPE|RULES|CORE|LINE|ANN|SCC))(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}]},"quasi_quotes":{"patterns":[{"contentName":"quoted.quasiquotes.qq-$3.haskell","begin":"(\\[)((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))(\\|)","end":"(\\|)(\\])","beginCaptures":{"1":{"name":"punctuation.definition.quasiquotes.begin.haskell"},"2":{"name":"entity.name.tag.haskell","patterns":[{"include":"#module_name_prefix"}]}},"endCaptures":{"2":{"name":"punctuation.definition.quasiquotes.end.haskell"}}}]},"quoted_character":{"patterns":[{"name":"string.quoted.single.haskell","match":"(')((?:[\\ -\\[\\]-~]|\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\\u0026])|(?:\\\\o[0-7]+)|(?:\\\\x[0-9A-Fa-f]+)|(?:\\\\\\^[A-Z@\\[\\]\\\\^_])|(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))(')","captures":{"1":{"name":"punctuation.definition.string.begin.haskell"},"2":{"patterns":[{"include":"#characters"}]},"3":{"name":"punctuation.definition.string.end.haskell"}}}]},"record_field_declaration":{"patterns":[{"name":"meta.record-field.type-declaration.haskell","contentName":"meta.type-signature.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))","end":"(?=(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))|})","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"patterns":[{"include":"#attribute_name"},{"include":"#infix_op"}]},"2":{"name":"keyword.other.double-colon.haskell"}}}]},"regular_import":{"patterns":[{"name":"meta.import.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(import)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#module_name"},{"include":"#module_exports"},{"match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(qualified|as|hiding)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"}}},{"include":"#comments"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}}}]},"scoped_type":{"patterns":[{"match":"\\(((?\u003cparen\u003e(?:(?!\\(|\\)).|\\(\\g\u003cparen\u003e\\))*)(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))(?\u003cparen2\u003e(?:(?!\\(|\\)).|\\(\\g\u003cparen2\u003e\\))*))\\)","captures":{"1":{"patterns":[{"include":"#haskell_expr"}]}}},{"match":"((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))((?:(?!{-|(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=|--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))|$).|{-.*?-})*)","captures":{"1":{"name":"keyword.other.double-colon.haskell"},"2":{"name":"meta.type-signature.haskell","patterns":[{"include":"#type_signature"}]}}}]},"scoped_type_override":{"patterns":[{"match":"^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))((?:(?!{-|(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))).|{-.*?-})*)((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))","captures":{"2":{"patterns":[{"include":"#identifier"}]},"3":{"name":"keyword.other.double-colon.haskell"},"4":{"name":"meta.type-signature.haskell","patterns":[{"include":"#type_signature"}]},"5":{"patterns":[{"include":"#assignment_op"},{"include":"#operator"}]}}}]},"shebang":{"patterns":[{"name":"comment.line.shebang.haskell","match":"^\\#\\!.*\\brunhaskell\\b.*$"}]},"string":{"patterns":[{"name":"string.quoted.double.haskell","begin":"\"","end":"\"","patterns":[{"include":"#characters"},{"begin":"\\\\\\s","end":"\\\\","patterns":[{"include":"#invalid"}],"beginCaptures":{"0":{"name":"markup.other.escape.newline.begin.haskell"}},"endCaptures":{"0":{"name":"markup.other.escape.newline.end.haskell"}}}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.haskell"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.haskell"}}}]},"type_alias":{"patterns":[{"name":"meta.declaration.type.type.haskell","contentName":"meta.type-signature.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(type)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#comments"},{"include":"#family_and_instance"},{"include":"#where"},{"include":"#assignment_op"},{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.type.haskell"}}}]},"type_application":{"patterns":[{"name":"other.type-application.haskell","match":"(\u003c?\\s+)(@)(\\'?\\((?\u003cparen\u003e(?:(?!\\(|\\)).|\\(\\g\u003cparen\u003e\\))*)\\)|\\'?\\[(?\u003cbrack\u003e(?:(?!\\[|\\]).|\\[\\g\u003cbrack\u003e\\])*)\\]|\"(?\u003cquot\u003e(?:(?!\"|\").|\"\\g\u003cquot\u003e\")*)\"|'(?:[\\ -\\[\\]-~]|\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\\u0026])|(?:\\\\o[0-7]+)|(?:\\\\x[0-9A-Fa-f]+)|(?:\\\\\\^[A-Z@\\[\\]\\\\^_])|(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))'|\\S+)","captures":{"2":{"patterns":[{"include":"#operator"}]},"3":{"patterns":[{"include":"#type_signature"}]}}}]},"type_ctor":{"patterns":[{"name":"entity.name.tag.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"support.tag.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(EQ|GT|LT|Left|Right|True|False)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}]},"type_ctor_alt":{"patterns":[{"contentName":"meta.type-signature.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s*","end":"^(?!^(?:\u003e|\u003c) [ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))","patterns":[{"include":"#comments"},{"include":"#type_signature"}],"beginCaptures":{"1":{"patterns":[{"include":"#type_ctor"}]}}}]},"type_ctor_forall":{"patterns":[{"contentName":"meta.type-signature.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))forall(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","end":"^(?!^(?:\u003e|\u003c) [ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))","patterns":[{"include":"#comments"},{"match":"\\G.*?(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))","captures":{"0":{"patterns":[{"include":"#type_signature"}]}}},{"match":"\\G.*?\\.","captures":{"0":{"patterns":[{"include":"#type_signature"}]}}},{"include":"#big_arrow"},{"include":"#type_variable"},{"begin":"\\(","end":"\\)","patterns":[{"include":"#type_signature"}]},{"include":"#type_ctor_alt"}],"beginCaptures":{"0":{"patterns":[{"include":"#type_signature"}]}}}]},"type_exportImport":{"patterns":[{"name":"meta.declaration.export.qualified.type.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(type)\\s+([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))","captures":{"1":{"patterns":[{"include":"#keywords"}]},"2":{"patterns":[{"include":"#type_name"},{"include":"#operator"}]}}}]},"type_name":{"patterns":[{"name":"entity.name.type.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"0":{"patterns":[{"include":"#module_name_prefix"},{"name":"entity.other.inherited-class.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(Applicative|Bounded|Enum|Eq|Floating|Foldable|Fractional|Functor|Integral|Monad|Monoid|Num|Ord|Read|Real|RealFloat|RealFrac|Show|Traversable)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"name":"support.class.prelude.$1.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(Either|FilePath|IO|IOError|Integer|Ordering|Rational|ReadS|ShowS|String|Bool|Char|Double|Float|Int|Just|Maybe|Nothing|Word)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}]},"type_signature":{"patterns":[{"include":"#pragma"},{"include":"#comments"},{"name":"keyword.other.forall.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))forall(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"},{"include":"#quoted_character"},{"name":"other.promoted.haskell","match":"'(\\(\\))","captures":{"1":{"patterns":[{"include":"#unit"}]}}},{"include":"#unit"},{"name":"other.promoted.haskell","match":"'(\\[\\])","captures":{"1":{"patterns":[{"include":"#empty_list"}]}}},{"include":"#empty_list"},{"include":"#string"},{"include":"#arrow"},{"include":"#big_arrow"},{"name":"other.promoted.haskell","match":"'((?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+)","captures":{"1":{"patterns":[{"include":"#operator"}]}}},{"include":"#operator"},{"include":"#type_variable"},{"name":"other.promoted.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}'])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))'([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"patterns":[{"include":"#type_name"}]}}},{"include":"#type_name"},{"include":"#lit_num"}]},"type_variable":{"patterns":[{"name":"variable.other.generic-type.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]},"unit":{"patterns":[{"name":"constant.language.unit.haskell","match":"\\(\\)"}]},"via":{"patterns":[{"include":"#via_list"},{"include":"#via_list_newline"},{"include":"#via_indent"},{"include":"#via_simple"},{"include":"#via_keyword"}]},"via_indent":{"patterns":[{"name":"meta.via.haskell","begin":"^(?:\u003e|\u003c) ([ \\t]*)(via)\\s*","end":"^(?!(?:\u003e|\u003c) \\1|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )","patterns":[{"include":"#type_signature"}],"beginCaptures":{"2":{"name":"keyword.other.haskell"}}}]},"via_keyword":{"patterns":[{"name":"meta.via.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"}}}]},"via_list":{"patterns":[{"name":"meta.via.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*\\(","end":"\\)","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"via_list_newline":{"patterns":[{"name":"meta.via.haskell","begin":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*","end":"$","patterns":[{"include":"#type_signature"}],"beginCaptures":{"1":{"name":"keyword.other.haskell"}}}]},"via_simple":{"patterns":[{"name":"meta.via.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))","captures":{"1":{"name":"keyword.other.haskell"},"2":{"patterns":[{"include":"#type_signature"}]}}}]},"where":{"patterns":[{"name":"keyword.other.haskell","match":"(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))where(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"}]}}}
|
data/grammars/version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
7.
|
1
|
+
7.20.0
|
data/lib/linguist/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
7.
|
1
|
+
7.20.0
|
data/lib/linguist/generated.rb
CHANGED
@@ -52,6 +52,7 @@ module Linguist
|
|
52
52
|
# Return true or false
|
53
53
|
def generated?
|
54
54
|
xcode_file? ||
|
55
|
+
intellij_file? ||
|
55
56
|
cocoapods? ||
|
56
57
|
carthage_build? ||
|
57
58
|
generated_graphql_relay? ||
|
@@ -65,6 +66,7 @@ module Linguist
|
|
65
66
|
poetry_lock? ||
|
66
67
|
esy_lock? ||
|
67
68
|
npm_shrinkwrap_or_package_lock? ||
|
69
|
+
terraform_lock? ||
|
68
70
|
generated_yarn_plugnplay? ||
|
69
71
|
godeps? ||
|
70
72
|
generated_by_zephir? ||
|
@@ -78,12 +80,12 @@ module Linguist
|
|
78
80
|
compiled_cython_file? ||
|
79
81
|
pipenv_lock? ||
|
80
82
|
generated_go? ||
|
83
|
+
generated_protocol_buffer_from_go? ||
|
81
84
|
generated_protocol_buffer? ||
|
82
85
|
generated_javascript_protocol_buffer? ||
|
83
86
|
generated_apache_thrift? ||
|
84
87
|
generated_jni_header? ||
|
85
88
|
vcr_cassette? ||
|
86
|
-
jest_snapshot? ||
|
87
89
|
generated_antlr? ||
|
88
90
|
generated_module? ||
|
89
91
|
generated_unity3d_meta? ||
|
@@ -113,6 +115,16 @@ module Linguist
|
|
113
115
|
def xcode_file?
|
114
116
|
['.nib', '.xcworkspacedata', '.xcuserstate'].include?(extname)
|
115
117
|
end
|
118
|
+
|
119
|
+
# Internal: Is the blob an IntelliJ IDEA project file?
|
120
|
+
#
|
121
|
+
# JetBrains IDEs generate project files under an `.idea` directory
|
122
|
+
# that are sometimes checked into version control.
|
123
|
+
#
|
124
|
+
# Returns true or false.
|
125
|
+
def intellij_file?
|
126
|
+
!!name.match(/(?:^|\/)\.idea\//)
|
127
|
+
end
|
116
128
|
|
117
129
|
# Internal: Is the blob part of Pods/, which contains dependencies not meant for humans in pull requests.
|
118
130
|
#
|
@@ -310,6 +322,17 @@ module Linguist
|
|
310
322
|
return lines.first(40).any? { |l| l.include? "Code generated by" }
|
311
323
|
end
|
312
324
|
|
325
|
+
# Internal: Is the blob a protocol buffer file generated by the
|
326
|
+
# go-to-protobuf tool?
|
327
|
+
#
|
328
|
+
# Returns true or false
|
329
|
+
def generated_protocol_buffer_from_go?
|
330
|
+
return false unless extname == '.proto'
|
331
|
+
return false unless lines.count > 1
|
332
|
+
|
333
|
+
return lines.first(20).any? { |l| l.include? "This file was autogenerated by go-to-protobuf" }
|
334
|
+
end
|
335
|
+
|
313
336
|
PROTOBUF_EXTENSIONS = ['.py', '.java', '.h', '.cc', '.cpp', '.m', '.rb', '.php']
|
314
337
|
|
315
338
|
# Internal: Is the blob a C++, Java or Python source file generated by the
|
@@ -402,7 +425,7 @@ module Linguist
|
|
402
425
|
#
|
403
426
|
# Returns true or false.
|
404
427
|
def generated_yarn_plugnplay?
|
405
|
-
!!name.match(/(^|\/)\.pnp
|
428
|
+
!!name.match(/(^|\/)\.pnp\..*$/)
|
406
429
|
end
|
407
430
|
|
408
431
|
# Internal: Is the blob part of Godeps/,
|
@@ -444,18 +467,6 @@ module Linguist
|
|
444
467
|
return lines[-2].include?("recorded_with: VCR")
|
445
468
|
end
|
446
469
|
|
447
|
-
# Is this a Jest Snapshot?
|
448
|
-
#
|
449
|
-
# Jest Snapshots always start with:
|
450
|
-
# // Jest Snapshot v1 ...
|
451
|
-
#
|
452
|
-
# Returns true or false
|
453
|
-
def jest_snapshot?
|
454
|
-
return false unless extname == '.snap'
|
455
|
-
return false unless lines.count > 1
|
456
|
-
return lines[0].include?("// Jest Snapshot ")
|
457
|
-
end
|
458
|
-
|
459
470
|
# Is this a generated ANTLR file?
|
460
471
|
#
|
461
472
|
# Returns true or false
|
@@ -485,6 +496,13 @@ module Linguist
|
|
485
496
|
!!name.match(/Pipfile\.lock/)
|
486
497
|
end
|
487
498
|
|
499
|
+
# Internal: Is this a Terraform lock file?
|
500
|
+
#
|
501
|
+
# Returns true or false.
|
502
|
+
def terraform_lock?
|
503
|
+
!!name.match(/(?:^|\/)\.terraform\.lock\.hcl$/)
|
504
|
+
end
|
505
|
+
|
488
506
|
# Internal: Is it a KiCAD or GFortran module file?
|
489
507
|
#
|
490
508
|
# KiCAD module files contain:
|
data/lib/linguist/generic.yml
CHANGED
data/lib/linguist/heuristics.yml
CHANGED
@@ -130,6 +130,10 @@ disambiguations:
|
|
130
130
|
pattern: '![\w\s]+methodsFor: '
|
131
131
|
- language: 'C#'
|
132
132
|
pattern: '^(\s*namespace\s*[\w\.]+\s*{|\s*\/\/)'
|
133
|
+
- extensions: ['.csc']
|
134
|
+
rules:
|
135
|
+
- language: GSC
|
136
|
+
named_pattern: gsc
|
133
137
|
- extensions: ['.csl']
|
134
138
|
rules:
|
135
139
|
- language: XML
|
@@ -157,6 +161,20 @@ disambiguations:
|
|
157
161
|
pattern: '# Microsoft Developer Studio Generated Build File'
|
158
162
|
- language: Faust
|
159
163
|
pattern: '\bprocess\s*[(=]|\b(library|import)\s*\(\s*"|\bdeclare\s+(name|version|author|copyright|license)\s+"'
|
164
|
+
- extensions: ['.e']
|
165
|
+
rules:
|
166
|
+
- language: E
|
167
|
+
pattern:
|
168
|
+
- '^\s*(def|var)\s+(.+):='
|
169
|
+
- '^\s*(def|to)\s+(\w+)(\(.+\))?\s+{'
|
170
|
+
- '^\s*(when)\s+(\(.+\))\s+->\s+{'
|
171
|
+
- language: Eiffel
|
172
|
+
pattern:
|
173
|
+
- '^\s*\w+\s*(?:,\s*\w+)*[:]\s*\w+\s'
|
174
|
+
- '^\s*\w+\s*(?:\(\s*\w+[:][^)]+\))?(?:[:]\s*\w+)?(?:--.+\s+)*\s+(?:do|local)\s'
|
175
|
+
- '^\s*(?:across|deferred|elseif|ensure|feature|from|inherit|inspect|invariant|note|once|require|undefine|variant|when)\s*$'
|
176
|
+
- language: Euphoria
|
177
|
+
named_pattern: euphoria
|
160
178
|
- extensions: ['.ecl']
|
161
179
|
rules:
|
162
180
|
- language: ECLiPSe
|
@@ -169,6 +187,15 @@ disambiguations:
|
|
169
187
|
pattern: '^\s*(?:%%|main\s*\(.*?\)\s*->)'
|
170
188
|
- language: JavaScript
|
171
189
|
pattern: '(?m:\/\/|("|'')use strict\1|export\s+default\s|\/\*.*?\*\/)'
|
190
|
+
- extensions: ['.ex']
|
191
|
+
rules:
|
192
|
+
- language: Elixir
|
193
|
+
pattern:
|
194
|
+
- '^\s*@moduledoc\s'
|
195
|
+
- '^\s*(?:cond|import|quote|unless)\s'
|
196
|
+
- '^\s*def(?:exception|impl|macro|module|protocol)[(\s]'
|
197
|
+
- language: Euphoria
|
198
|
+
named_pattern: euphoria
|
172
199
|
- extensions: ['.f']
|
173
200
|
rules:
|
174
201
|
- language: Forth
|
@@ -229,6 +256,14 @@ disambiguations:
|
|
229
256
|
pattern: '^uses (java|gw)\.'
|
230
257
|
- language: Genie
|
231
258
|
pattern: '^\[indent=[0-9]+\]'
|
259
|
+
- extensions: ['.gsc']
|
260
|
+
rules:
|
261
|
+
- language: GSC
|
262
|
+
named_pattern: gsc
|
263
|
+
- extensions: ['.gsh']
|
264
|
+
rules:
|
265
|
+
- language: GSC
|
266
|
+
named_pattern: gsc
|
232
267
|
- extensions: ['.h']
|
233
268
|
rules:
|
234
269
|
- language: Objective-C
|
@@ -323,8 +358,16 @@ disambiguations:
|
|
323
358
|
- language: 'M4'
|
324
359
|
- extensions: ['.mask']
|
325
360
|
rules:
|
326
|
-
- language:
|
361
|
+
- language: Unity3D Asset
|
327
362
|
pattern: 'tag:unity3d.com'
|
363
|
+
- extensions: ['.mc']
|
364
|
+
rules:
|
365
|
+
- language: Win32 Message File
|
366
|
+
pattern: '(?i)^[ \t]*(?>\/\*\s*)?MessageId=|^\.$'
|
367
|
+
- language: M4
|
368
|
+
pattern: '^dnl|^divert\((?:-?\d+)?\)|^\w+\(`[^\n]*?''[),]'
|
369
|
+
- language: Monkey C
|
370
|
+
pattern: '\b(?:using|module|function|class|var)\s+\w'
|
328
371
|
- extensions: ['.md']
|
329
372
|
rules:
|
330
373
|
- language: Markdown
|
@@ -589,6 +632,10 @@ disambiguations:
|
|
589
632
|
# HACK: This is a contrived use of heuristics needed to address
|
590
633
|
# an unusual edge-case. See https://git.io/JULye for discussion.
|
591
634
|
- language: Text
|
635
|
+
- extensions: ['.url']
|
636
|
+
rules:
|
637
|
+
- language: INI
|
638
|
+
pattern: '^\[InternetShortcut\]\R(?>[^\s\[][^\n]*\R)*URL='
|
592
639
|
- extensions: ['.v']
|
593
640
|
rules:
|
594
641
|
- language: Coq
|
@@ -618,6 +665,12 @@ disambiguations:
|
|
618
665
|
pattern: '^%(end|ctor|hook|group)\b'
|
619
666
|
- language: Linker Script
|
620
667
|
pattern: 'OUTPUT_ARCH\(|OUTPUT_FORMAT\(|SECTIONS'
|
668
|
+
- extensions: ['.yaml']
|
669
|
+
rules:
|
670
|
+
- language: MiniYAML
|
671
|
+
pattern: '^\t+.*?[^\s:].*?:'
|
672
|
+
negative_pattern: '---'
|
673
|
+
- language: YAML
|
621
674
|
- extensions: ['.yy']
|
622
675
|
rules:
|
623
676
|
- language: JSON
|
@@ -632,7 +685,16 @@ named_patterns:
|
|
632
685
|
- '^[ \t]*(class|(using[ \t]+)?namespace)\s+\w+'
|
633
686
|
- '^[ \t]*(private|public|protected):$'
|
634
687
|
- 'std::\w+'
|
688
|
+
euphoria:
|
689
|
+
- '^\s*namespace\s'
|
690
|
+
- '^\s*(?:public\s+)?include\s'
|
691
|
+
- '^\s*(?:(?:public|export|global)\s+)?(?:atom|constant|enum|function|integer|object|procedure|sequence|type)\s'
|
635
692
|
fortran: '^(?i:[c*][^abd-z]| (subroutine|program|end|data)\s|\s*!)'
|
693
|
+
gsc:
|
694
|
+
- '^\s*#\s*(?:using|insert|include|define|namespace)[ \t]+\w'
|
695
|
+
- '^\s*(?>(?:autoexec|private)\s+){0,2}function\s+(?>(?:autoexec|private)\s+){0,2}\w+\s*\('
|
696
|
+
- '\b(?:level|self)[ \t]+thread[ \t]+(?:\[\[[ \t]*(?>\w+\.)*\w+[ \t]*\]\]|\w+)[ \t]*\([^\r\n\)]*\)[ \t]*;'
|
697
|
+
- '^[ \t]*#[ \t]*(?:precache|using_animtree)[ \t]*\('
|
636
698
|
key_equals_value: '^[^#!;][^=]*='
|
637
699
|
m68k:
|
638
700
|
- '(?im)\bmoveq(?:\.l)?\s+#(?:\$-?[0-9a-f]{1,3}|%[0-1]{1,8}|-?[0-9]{1,3}),\s*d[0-7]\b'
|