@shikijs/langs-precompiled 2.1.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abap.mjs +3 -1
- package/dist/angular-ts.mjs +1 -1
- package/dist/apex.mjs +1 -1
- package/dist/apl.mjs +1 -1
- package/dist/applescript.mjs +1 -1
- package/dist/ara.mjs +1 -1
- package/dist/asciidoc.mjs +1 -1
- package/dist/asm.mjs +1 -1
- package/dist/astro.mjs +1 -1
- package/dist/ballerina.mjs +3 -1
- package/dist/blade.mjs +1 -1
- package/dist/bsl.mjs +2 -1
- package/dist/c.mjs +1 -1
- package/dist/cadence.mjs +1 -1
- package/dist/cobol.mjs +2 -1
- package/dist/codeql.mjs +6 -2
- package/dist/coffee.mjs +2 -1
- package/dist/common-lisp.mjs +1 -1
- package/dist/cpp-macro.mjs +1 -1
- package/dist/cpp.mjs +1 -1
- package/dist/crystal.mjs +1 -1
- package/dist/css.mjs +1 -1
- package/dist/dax.mjs +3 -1
- package/dist/dream-maker.mjs +1 -1
- package/dist/elixir.mjs +1 -1
- package/dist/emacs-lisp.mjs +1 -1
- package/dist/erlang.mjs +1 -1
- package/dist/fortran-free-form.mjs +1 -1
- package/dist/gdscript.mjs +1 -1
- package/dist/gherkin.mjs +3 -1
- package/dist/glimmer-js.mjs +1 -1
- package/dist/glimmer-ts.mjs +1 -1
- package/dist/go.mjs +1 -1
- package/dist/graphql.mjs +1 -1
- package/dist/hack.mjs +1 -1
- package/dist/haml.mjs +1 -1
- package/dist/haskell.mjs +1 -1
- package/dist/html.mjs +1 -1
- package/dist/imba.mjs +1 -1
- package/dist/ini.mjs +1 -1
- package/dist/java.mjs +1 -1
- package/dist/javascript.mjs +1 -1
- package/dist/jsx.mjs +1 -1
- package/dist/julia.mjs +1 -1
- package/dist/kotlin.mjs +1 -1
- package/dist/kusto.mjs +1 -1
- package/dist/latex.mjs +1 -1
- package/dist/less.mjs +3 -1
- package/dist/logo.mjs +1 -1
- package/dist/lua.mjs +1 -1
- package/dist/make.mjs +1 -1
- package/dist/markdown-vue.mjs +1 -1
- package/dist/markdown.mjs +1 -1
- package/dist/matlab.mjs +1 -1
- package/dist/mdc.mjs +1 -1
- package/dist/mdx.mjs +1 -1
- package/dist/mermaid.mjs +1 -1
- package/dist/mipsasm.mjs +1 -1
- package/dist/mojo.mjs +1 -1
- package/dist/nginx.mjs +1 -1
- package/dist/nim.mjs +1 -1
- package/dist/nix.mjs +1 -1
- package/dist/nushell.mjs +1 -1
- package/dist/objective-c.mjs +1 -1
- package/dist/objective-cpp.mjs +1 -1
- package/dist/pascal.mjs +1 -1
- package/dist/perl.mjs +1 -1
- package/dist/php.mjs +1 -1
- package/dist/po.mjs +1 -1
- package/dist/polar.mjs +1 -1
- package/dist/powershell.mjs +1 -1
- package/dist/prolog.mjs +3 -1
- package/dist/pug.mjs +1 -1
- package/dist/python.mjs +1 -1
- package/dist/r.mjs +1 -1
- package/dist/racket.mjs +3 -1
- package/dist/raku.mjs +1 -1
- package/dist/razor.mjs +1 -1
- package/dist/riscv.mjs +1 -1
- package/dist/ruby.mjs +1 -1
- package/dist/sas.mjs +2 -1
- package/dist/scala.mjs +1 -1
- package/dist/scheme.mjs +1 -1
- package/dist/scss.mjs +1 -1
- package/dist/shellscript.mjs +1 -1
- package/dist/smalltalk.mjs +1 -1
- package/dist/sql.mjs +1 -1
- package/dist/ssh-config.mjs +1 -1
- package/dist/stata.mjs +2 -1
- package/dist/stylus.mjs +1 -1
- package/dist/svelte.mjs +1 -1
- package/dist/systemd.mjs +1 -1
- package/dist/templ.mjs +1 -1
- package/dist/tex.mjs +1 -1
- package/dist/toml.mjs +1 -1
- package/dist/tsx.mjs +1 -1
- package/dist/twig.mjs +1 -1
- package/dist/typescript.mjs +1 -1
- package/dist/v.mjs +1 -1
- package/dist/vb.mjs +1 -1
- package/dist/verilog.mjs +1 -1
- package/dist/viml.mjs +3 -1
- package/dist/vue-html.mjs +1 -1
- package/dist/vue.mjs +1 -1
- package/dist/vyper.mjs +1 -1
- package/dist/wikitext.mjs +1 -1
- package/dist/wolfram.mjs +1 -1
- package/dist/yaml.mjs +1 -1
- package/package.json +4 -4
package/dist/haskell.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EmulatedRegExp } from 'oniguruma-to-es'
|
|
2
2
|
|
|
3
|
-
const lang = Object.freeze({displayName:"Haskell",fileTypes:["hs","hs-boot","hsig"],name:"haskell",patterns:[{include:"#liquid_haskell"},{include:"#comment_like"},{include:"#numeric_literals"},{include:"#string_literal"},{include:"#char_literal"},{match:/(?<!@|#)-\}/dgv,name:"invalid"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*(\))/dgv,name:"constant.language.unit.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"constant.language.unit.unboxed.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*,[\p{space}\,]*(\))/dgv,name:"support.constant.tuple.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*,[\p{space}\,]*(#)(\))/dgv,name:"support.constant.tuple.unboxed.haskell"},{captures:{"1":{name:"punctuation.bracket.haskell"},"2":{name:"punctuation.bracket.haskell"}},match:/(\[)\p{space}*(\])/dgv,name:"constant.language.empty-list.haskell"},{begin:/(\b(?<!')(module)|^(signature))(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.module.haskell"},"3":{name:"keyword.other.signature.haskell"}},end:/(?=\b(?<!')where\b(?!'))/dgv,name:"meta.declaration.module.haskell",patterns:[{include:"#comment_like"},{include:"#module_name"},{include:"#module_exports"},{match:/[a-z]+/dgv,name:"invalid"}]},{include:"#ffi"},{begin:/^(\p{space}*)(class)(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.class.haskell"}},end:/(?=(?<!')\bwhere\b(?!'))|(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.class.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(data|newtype)(?:\p{space}+(instance))?\p{space}+((?:(?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\b(?<!')(?:where|deriving)\b(?!')|\{-)[^\n])*)(?=\b(?<!'')where\b(?!''))/dgv,beginCaptures:{"2":{name:"keyword.other.$2.haskell"},"3":{name:"keyword.other.instance.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=(?<!')\bderiving\b(?!'))|(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.$2.generalized.haskell",patterns:[{include:"#comment_like"},{begin:/(?<!')\b(where)\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.where.haskell"},"2":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"#comment_like"},{include:"#gadt_constructor"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},{match:/\b(?<!')(where)\b(?!')/dgv,name:"keyword.other.where.haskell"},{include:"#deriving"},{include:"#gadt_constructor"}]},{include:"#role_annotation"},{begin:/^(\p{space}*)(pattern)\p{space}+([^\n]*?)\p{space}+(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv,beginCaptures:{"2":{name:"keyword.other.pattern.haskell"},"3":{patterns:[{include:"#comma"},{include:"#data_constructor"}]},"4":{name:"keyword.operator.double-colon.haskell"}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.pattern.type.haskell",patterns:[{include:"#type_signature"}]},{begin:/^\p{space}*(pattern)\b(?!')/dgv,captures:{"1":{name:"keyword.other.pattern.haskell"}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.pattern.haskell",patterns:[{include:"$self"}]},{begin:/^(\p{space}*)(data|newtype)(?:\p{space}+(family|instance))?\p{space}+(((?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\b(?<!')(?:where|deriving)\b(?!')|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.$2.haskell"},"3":{name:"keyword.other.$3.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.$2.algebraic.haskell",patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#forall"},{include:"#adt_constructor"},{include:"#context"},{include:"#record_decl"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(type)\p{space}+(family)\b(?!')(((?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\b(?<!')where\b(?!')|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.family.haskell"},"4":{patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.type.family.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(type)(?:\p{space}+(instance))?\p{space}+(((?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+|::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.instance.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.type.haskell",patterns:[{include:"#type_signature"}]},{begin:/^(\p{space}*)(instance)(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.instance.haskell"}},end:/(?=\b(?<!')(where)\b(?!'))|(?=\}|;)|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))/dgv,name:"meta.declaration.instance.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(import)(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.import.haskell"}},end:/(?=\b(?<!')(where)\b(?!'))|(?=\}|;)|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))/dgv,name:"meta.import.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{captures:{"1":{name:"keyword.other.$1.haskell"}},match:/(qualified|as|hiding)/dgv},{include:"#module_name"},{include:"#module_exports"}]},{include:"#deriving"},{include:"#layout_herald"},{include:"#keyword"},{captures:{"1":{name:"keyword.other.$1.haskell"},"2":{patterns:[{include:"#comment_like"},{include:"#integer_literals"},{include:"#infix_op"}]}},match:/^\p{space}*(infix[lr]?)\p{space}+([^\n]*)/dgv,name:"meta.fixity-declaration.haskell"},{include:"#overloaded_label"},{include:"#type_application"},{include:"#reserved_symbol"},{include:"#fun_decl"},{include:"#qualifier"},{include:"#data_constructor"},{include:"#start_type_signature"},{include:"#prefix_op"},{include:"#infix_op"},{begin:/(\()(#)\p{space}/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"}},end:/(#)(\))/dgv,endCaptures:{"1":{name:"keyword.operator.hash.haskell"},"2":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{include:"#quasi_quote"},{begin:/(\[)/dgv,beginCaptures:{"1":{name:"punctuation.bracket.haskell"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.bracket.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{include:"#record"}],repository:{adt_constructor:{patterns:[{include:"#comment_like"},{begin:/(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:(=)|(\|))(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv,beginCaptures:{"1":{name:"keyword.operator.eq.haskell"},"2":{name:"keyword.operator.pipe.haskell"}},end:/*@__PURE__*/ new EmulatedRegExp("(?:^|^)\\p{space}*(?:(?<!')\\b((?:[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\.])+)|('?(?<paren>\\((?:[^\\(\\)]*|(?:\\((?:[^\\(\\)]*|(?:\\((?:[^\\(\\)]*|(?:\\((?:[^\\(\\)]*|(?:\\((?:[^\\(\\)]*|(?:))*\\)))*\\)))*\\)))*\\)))*\\)))|('?(?<brac>\\((?:[^\\[\\]]*|(?:\\((?:[^\\[\\]]*|(?:\\((?:[^\\[\\]]*|(?:\\((?:[^\\[\\]]*|(?:\\((?:[^\\[\\]]*|(?:))*\\]))*\\]))*\\]))*\\]))*\\])))\\p{space}*(?:(?<![[\\p{S}\\p{P}]&&[^\\(\\)\\,\\;\\[\\]\\`\\{\\}_\"']])(:[[\\p{S}\\p{P}]&&[^\\(\\)\\,\\;\\[\\]\\`\\{\\}_\"']]*)|(`)([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(`))|(?<!')\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)|(\\()\\p{space}*(:[[\\p{S}\\p{P}]&&[^\\(\\)\\,\\;\\[\\]\\`\\{\\}_\"']]*)\\p{space}*(\\))","dgv",{"strategy":"search_start_clip"}),endCaptures:{"1":{patterns:[{include:"#type_signature"}]},"2":{patterns:[{include:"#type_signature"}]},"4":{patterns:[{include:"#type_signature"}]},"6":{name:"constant.other.operator.haskell"},"7":{name:"punctuation.backtick.haskell"},"8":{name:"constant.other.haskell"},"9":{name:"punctuation.backtick.haskell"},"10":{name:"constant.other.haskell"},"11":{name:"punctuation.paren.haskell"},"12":{name:"constant.other.operator.haskell"},"13":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#record_decl"},{include:"#forall"},{include:"#context"}]}]},block_comment:{applyEndPatternLast:1,begin:/\{-/dgv,captures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/-\}/dgv,name:"comment.block.haskell",patterns:[{include:"#block_comment"}]},char_literal:{captures:{"1":{name:"punctuation.definition.string.begin.haskell"},"2":{name:"constant.character.escape.haskell"},"3":{name:"constant.character.escape.octal.haskell"},"4":{name:"constant.character.escape.hexadecimal.haskell"},"5":{name:"constant.character.escape.control.haskell"},"6":{name:"punctuation.definition.string.end.haskell"}},match:/(?<![\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'])(')(?:[ -\[\]-\~]|(\\(?: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\\"'\\\&]))|(\\o[0-7]+)|(\\x[0-9A-Fa-f]+)|(\\\^[A-Z\@\[\]\\\^_]))(')/dgv,name:"string.quoted.single.haskell"},comma:{match:/,/dgv,name:"punctuation.separator.comma.haskell"},comment_like:{patterns:[{include:"#cpp"},{include:"#pragma"},{include:"#comments"}]},comments:{patterns:[{begin:/^(\p{space}*)(--\p{space}[\|\$])/dgv,beginCaptures:{"2":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/(?=^(?!\1--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])))()/dgv,name:"comment.block.documentation.haskell"},{begin:/(^[ \t]+)?(--\p{space}[\^\*])/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/\n/dgv,name:"comment.line.documentation.haskell"},{applyEndPatternLast:1,begin:/\{-\p{space}?[\|\$\*\^]/dgv,captures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/-\}/dgv,name:"comment.block.documentation.haskell",patterns:[{include:"#block_comment"}]},{begin:/(^[ \t]+)?(?=--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]))/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.haskell"}},comment:"Operators may begin with '--' as long as they are not entirely composed of '-' characters. This means comments can't be immediately followed by an allowable operator character.",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"search_start_clip"}),patterns:[{begin:/--/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/\n/dgv,name:"comment.line.double-dash.haskell"}]},{include:"#block_comment"}]},context:{captures:{"1":{patterns:[{include:"#comment_like"},{include:"#type_signature"}]},"2":{name:"keyword.operator.big-arrow.haskell"}},match:/([^\n]*)(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(=>|⇒)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv},cpp:{captures:{"1":{name:"punctuation.definition.preprocessor.c"}},comment:"In addition to Haskell's \"native\" syntax, GHC permits the C preprocessor to be run on a source file.",match:/^(#)[^\n]*(?=\n?$)/dgv,name:"meta.preprocessor.c"},data_constructor:{match:/\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*(?![\.'\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.other.haskell"},deriving:{patterns:[{begin:/^(\p{space}*)(deriving)\p{space}+(?:(via|stock|newtype|anyclass)\p{space}+)?/dgv,beginCaptures:{"2":{name:"keyword.other.deriving.haskell"},"3":{name:"keyword.other.deriving.strategy.$3.haskell"}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.deriving.haskell",patterns:[{include:"#comment_like"},{match:/(?<!')\b(instance)\b(?!')/dgv,name:"keyword.other.instance.haskell"},{captures:{"1":{name:"keyword.other.deriving.strategy.$1.haskell"}},match:/(?<!')\b(via|stock|newtype|anyclass)\b(?!')/dgv},{include:"#type_signature"}]},{begin:/(deriving)(?:\p{space}+(stock|newtype|anyclass))?\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.other.deriving.haskell"},"2":{name:"keyword.other.deriving.strategy.$2.haskell"},"3":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},name:"meta.deriving.haskell",patterns:[{include:"#type_signature"}]},{captures:{"1":{name:"keyword.other.deriving.haskell"},"2":{name:"keyword.other.deriving.strategy.$2.haskell"},"3":{patterns:[{include:"#type_signature"}]},"5":{name:"keyword.other.deriving.strategy.via.haskell"},"6":{patterns:[{include:"#type_signature"}]}},match:/(deriving)(?:\p{space}+(stock|newtype|anyclass))?\p{space}+([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)(\p{space}+(via)\p{space}+([^\n]*)(?=\n?$))?/dgv,name:"meta.deriving.haskell"},{match:/(?<!')\b(via)\b(?!')/dgv,name:"keyword.other.deriving.strategy.via.haskell"}]},double_colon:{captures:{"1":{name:"keyword.operator.double-colon.haskell"}},match:/\p{space}*(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])\p{space}*/dgv},export_constructs:{patterns:[{include:"#comment_like"},{begin:/\b(?<!')(pattern)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.pattern.haskell"}},end:/([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv,endCaptures:{"1":{name:"constant.other.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"constant.other.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"}]},{begin:/\b(?<!')(type)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.type.haskell"}},end:/([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv,endCaptures:{"1":{name:"storage.type.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"storage.type.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"}]},{match:/(?<!')\b[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*/dgv,name:"entity.name.function.haskell"},{match:/(?<!')\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*/dgv,name:"storage.type.haskell"},{include:"#record_wildcard"},{include:"#reserved_symbol"},{include:"#prefix_op"}]},ffi:{begin:/^(\p{space}*)(foreign)\p{space}+(import|export)\p{space}+/dgv,beginCaptures:{"2":{name:"keyword.other.foreign.haskell"},"3":{name:"keyword.other.$3.haskell"}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.$3.foreign.haskell",patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.calling-convention.$1.haskell"}},match:/\b(?<!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\p{space}+/dgv},{begin:/(?=")|(?=\b(?<!')([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)\b(?!'))/dgv,end:/(?=(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]))/dgv,patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.safety.$1.haskell"},"2":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]},"3":{name:"entity.name.function.haskell"},"4":{name:"entity.name.function.infix.haskell"}},match:/\b(?<!')(safe|unsafe|interruptible)\b(?!')\p{space}*("(?:\\"|[^"])*")?\p{space}*(?:\b(?<!'')([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)\b(?!')|\(\p{space}*(?!--+\))([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*\))/dgv},{captures:{"1":{name:"keyword.other.safety.$1.haskell"},"2":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]}},match:/\b(?<!')(safe|unsafe|interruptible)\b(?!')\p{space}*("(?:\\"|[^"])*")?\p{space}*(?=\n?$)/dgv},{captures:{"0":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]}},match:/"(?:\\"|[^"])*"/dgv},{captures:{"1":{name:"entity.name.function.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"entity.name.function.infix.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/\b(?<!'')([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)\b(?!')|(\()\p{space}*(?!--+\))([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv}]},{include:"#double_colon"},{include:"#type_signature"}]},float_literals:{captures:{"1":{name:"constant.numeric.floating.decimal.haskell"},"2":{name:"constant.numeric.floating.hexadecimal.haskell"}},comment:"Floats are decimal or hexadecimal",match:/\b(?<!')(?:([0-9][_0-9]*\.[0-9][_0-9]*(?:[eE][\-\+]?[0-9][_0-9]*)?|[0-9][_0-9]*[eE][\-\+]?[0-9][_0-9]*)|(0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*\.[0-9a-fA-F][_0-9a-fA-F]*(?:[pP][\-\+]?[0-9][_0-9]*)?|0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*[pP][\-\+]?[0-9][_0-9]*))\b(?!')/dgv},forall:{begin:/\b(?<!')(forall|∀)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.forall.haskell"}},end:/(\.)|(->|→)/dgv,endCaptures:{"1":{name:"keyword.operator.period.haskell"},"2":{name:"keyword.operator.arrow.haskell"}},patterns:[{include:"#comment_like"},{include:"#type_variable"},{include:"#type_signature"}]},fun_decl:{begin:/^(\p{space}*)(?<fn>(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:))?))?))?))?))?)\p{space}*(?<![[\p{S}\p{P}]&&[^\)\,\;\]\`\}_"']])(::|∷)(?![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])/dgv,beginCaptures:{"2":{name:"entity.name.function.haskell",patterns:[{include:"#reserved_symbol"},{include:"#prefix_op"}]},"3":{name:"keyword.operator.double-colon.haskell"}},end:/(?=(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])((<-|←)|(=)|(-<|↢)|(-<<|⤛))([\(\)\,\;\[\]\`\{\}_"']|[^\p{S}\p{P}]))|(?=\}|;)|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))/dgv,name:"meta.function.type-declaration.haskell",patterns:[{include:"#type_signature"}]},gadt_constructor:{patterns:[{begin:/^(\p{space}*)(?:(\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*)\p{space}*(\)))/dgv,beginCaptures:{"2":{name:"constant.other.haskell"},"3":{name:"punctuation.paren.haskell"},"4":{name:"constant.other.operator.haskell"},"5":{name:"punctuation.paren.haskell"}},end:/(?=\b(?<!'')deriving\b(?!'))|(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#double_colon"},{include:"#record_decl"},{include:"#type_signature"}]},{begin:/(\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}]*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*)\p{space}*(\))/dgv,beginCaptures:{"1":{name:"constant.other.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"constant.other.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(?=\n?$)/dgv,patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#double_colon"},{include:"#record_decl"},{include:"#type_signature"}]}]},infix_op:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"keyword.operator.infix.haskell"}},comment:"In case this regex seems overly general, note that Haskell permits the definition of new operators which can be nearly any string of punctuation characters, such as $%^&*.\n",match:/((?:(?<!'')('')?[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'']*\.)*)(#+|[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+(?<!#))/dgv},{captures:{"1":{name:"punctuation.backtick.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{patterns:[{include:"#data_constructor"}]},"4":{name:"punctuation.backtick.haskell"}},comment:"In case this regex seems unusual for an infix operator, note that Haskell\nallows any ordinary function application (elem 4 [1..10]) to be rewritten\nas an infix expression (4 `elem` [1..10]).\n",match:/(`)((?:[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'']*\.)*)([\p{Ll}\p{Lu}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'']*)(`)/dgv,name:"keyword.operator.function.infix.haskell"}]},inline_phase:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.bracket.haskell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.bracket.haskell"}},name:"meta.inlining-phase.haskell",patterns:[{match:/~/dgv,name:"punctuation.tilde.haskell"},{include:"#integer_literals"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid"}]},integer_literals:{captures:{"1":{name:"constant.numeric.integral.decimal.haskell"},"2":{name:"constant.numeric.integral.hexadecimal.haskell"},"3":{name:"constant.numeric.integral.octal.haskell"},"4":{name:"constant.numeric.integral.binary.haskell"}},match:/\b(?<!')(?:([0-9][_0-9]*)|(0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*)|(0[oO]_*[0-7][_0-7]*)|(0[bB]_*[01][_01]*))\b(?!')/dgv},keyword:{captures:{"1":{name:"keyword.other.$1.haskell"},"2":{name:"keyword.control.$2.haskell"}},match:/\b(?<!')(?:(where|let|in|default)|(m?do|if|then|else|case|of|proc|rec))\b(?!')/dgv},layout_herald:{begin:/(?<!')\b(?:(where|let|m?do)|(of))\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.$1.haskell"},"2":{name:"keyword.control.of.haskell"},"3":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"$self"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},liquid_haskell:{begin:/\{-@/dgv,end:/@-\}/dgv,name:"block.liquidhaskell.haskell",patterns:[{include:"$self"}]},module_exports:{applyEndPatternLast:1,begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},name:"meta.declaration.exports.haskell",patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.module.haskell"}},match:/\b(?<!')(module)\b(?!')/dgv},{include:"#comma"},{include:"#export_constructs"},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"},{include:"#record_wildcard"},{include:"#export_constructs"},{include:"#comma"}]}]},module_name:{match:/*@__PURE__*/ new EmulatedRegExp("(?<conid>[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*($E$\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*($E$\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*($E$\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*($E$\\.(?:))?))?))?))?))?)","dgv",{"useEmulationGroups":true}),name:"entity.name.namespace.haskell"},numeric_literals:{patterns:[{include:"#float_literals"},{include:"#integer_literals"}]},overloaded_label:{patterns:[{captures:{"1":{name:"keyword.operator.prefix.hash.haskell"},"2":{patterns:[{include:"#string_literal"}]}},match:/(?<![[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\(\,\;\[\`\{]])(#)(?:("(?:\\"|[^"])*")|[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'\.]+)/dgv,name:"entity.name.label.haskell"}]},pragma:{begin:/\{-#/dgv,end:/#-\}/dgv,name:"meta.preprocessor.haskell",patterns:[{begin:/\b(?<!')(LANGUAGE)\b(?!')/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"}},end:/(?=#-\})/dgv,patterns:[{match:/(?:No)?(?:AutoDeriveTypeable|DatatypeContexts|DoRec|IncoherentInstances|MonadFailDesugaring|MonoPatBinds|NullaryTypeClasses|OverlappingInstances|PatternSignatures|RecordPuns|RelaxedPolyRec)/dgv,name:"invalid.deprecated"},{captures:{"1":{name:"keyword.other.preprocessor.extension.haskell"}},match:/((?:No)?(?:AllowAmbiguousTypes|AlternativeLayoutRule|AlternativeLayoutRuleTransitional|Arrows|BangPatterns|BinaryLiterals|CApiFFI|CPP|CUSKs|ConstrainedClassMethods|ConstraintKinds|DataKinds|DefaultSignatures|DeriveAnyClass|DeriveDataTypeable|DeriveFoldable|DeriveFunctor|DeriveGeneric|DeriveLift|DeriveTraversable|DerivingStrategies|DerivingVia|DisambiguateRecordFields|DoAndIfThenElse|BlockArguments|DuplicateRecordFields|EmptyCase|EmptyDataDecls|EmptyDataDeriving|ExistentialQuantification|ExplicitForAll|ExplicitNamespaces|ExtendedDefaultRules|FlexibleContexts|FlexibleInstances|ForeignFunctionInterface|FunctionalDependencies|GADTSyntax|GADTs|GHCForeignImportPrim|Generali(?:s|z)edNewtypeDeriving|ImplicitParams|ImplicitPrelude|ImportQualifiedPost|ImpredicativeTypes|TypeFamilyDependencies|InstanceSigs|ApplicativeDo|InterruptibleFFI|JavaScriptFFI|KindSignatures|LambdaCase|LiberalTypeSynonyms|MagicHash|MonadComprehensions|MonoLocalBinds|MonomorphismRestriction|MultiParamTypeClasses|MultiWayIf|NumericUnderscores|NPlusKPatterns|NamedFieldPuns|NamedWildCards|NegativeLiterals|HexFloatLiterals|NondecreasingIndentation|NumDecimals|OverloadedLabels|OverloadedLists|OverloadedStrings|PackageImports|ParallelArrays|ParallelListComp|PartialTypeSignatures|PatternGuards|PatternSynonyms|PolyKinds|PolymorphicComponents|QuantifiedConstraints|PostfixOperators|QuasiQuotes|Rank2Types|RankNTypes|RebindableSyntax|RecordWildCards|RecursiveDo|RelaxedLayout|RoleAnnotations|ScopedTypeVariables|StandaloneDeriving|StarIsType|StaticPointers|Strict|StrictData|TemplateHaskell|TemplateHaskellQuotes|StandaloneKindSignatures|TraditionalRecordSyntax|TransformListComp|TupleSections|TypeApplications|TypeInType|TypeFamilies|TypeOperators|TypeSynonymInstances|UnboxedTuples|UnboxedSums|UndecidableInstances|UndecidableSuperClasses|UnicodeSyntax|UnliftedFFITypes|UnliftedNewtypes|ViewPatterns))/dgv},{include:"#comma"}]},{begin:/\b(?<!')(SPECIALI(?:S|Z)E)(?:\p{space}*(\[[^\[\]]*\])?\p{space}*|\p{space}+)(instance)\b(?!')/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"},"2":{patterns:[{include:"#inline_phase"}]},"3":{name:"keyword.other.instance.haskell"}},end:/(?=#-\})/dgv,patterns:[{include:"#type_signature"}]},{begin:/\b(?<!')(SPECIALI(?:S|Z)E)\b(?!')(?:\p{space}+(INLINE)\b(?!'))?\p{space}*(\[[^\[\]]*\])?\p{space}*/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"},"2":{name:"keyword.other.preprocessor.pragma.haskell"},"3":{patterns:[{include:"#inline_phase"}]}},end:/(?=#-\})/dgv,patterns:[{include:"$self"}]},{match:/\b(?<!')(LANGUAGE|OPTIONS_GHC|INCLUDE|MINIMAL|UNPACK|OVERLAPS|INCOHERENT|NOUNPACK|SOURCE|OVERLAPPING|OVERLAPPABLE|INLINE|NOINLINE|INLINE?ABLE|CONLIKE|LINE|COLUMN|RULES|COMPLETE)\b(?!')/dgiv,name:"keyword.other.preprocessor.haskell"},{begin:/\b(DEPRECATED|WARNING)\b/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"}},end:/(?=#-\})/dgv,patterns:[{include:"#string_literal"}]}]},prefix_op:{patterns:[{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"entity.name.function.infix.haskell"},"3":{name:"punctuation.paren.haskell"}},comment:"An operator cannot be composed entirely of '-' characters; instead, it should be matched as a comment.\n",match:/(\()\p{space}*(?!(?:--+|\.\.)\))(#+|[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+(?<!#))\p{space}*(\))/dgv}]},qualifier:{match:/\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\./dgv,name:"entity.name.namespace.haskell"},quasi_quote:{patterns:[{begin:/(\[)(e|d|p)?(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"entity.name.quasi-quoter.haskell"},"3":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\3\]()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell",patterns:[{include:"$self"}]},{begin:/(\[)(t)(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"entity.name.quasi-quoter.haskell"},"3":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\3\]()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell",patterns:[{include:"#type_signature"}]},{begin:/(\[)(?:(\$\$)|(\$))?((?:[^\p{space}\p{S}\p{P}]|[\.'_])*)(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"keyword.operator.prefix.double-dollar.haskell"},"3":{name:"keyword.operator.prefix.dollar.haskell"},"4":{name:"entity.name.quasi-quoter.haskell",patterns:[{include:"#qualifier"}]},"5":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\5\]()()()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell"}]},record:{begin:/(\{)(?!-)/dgv,beginCaptures:{"1":{name:"punctuation.brace.haskell"}},end:/(?<!-)(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},name:"meta.record.haskell",patterns:[{include:"#comment_like"},{include:"#record_field"}]},record_decl:{begin:/(\{)(?!-)/dgv,beginCaptures:{"1":{name:"punctuation.brace.haskell"}},end:/(?<!-)(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},name:"meta.record.definition.haskell",patterns:[{include:"#comment_like"},{include:"#record_decl_field"}]},record_decl_field:{begin:/(?:([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\)))/dgv,beginCaptures:{"1":{name:"variable.other.member.definition.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"variable.other.member.definition.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(,)|(?=\})/dgv,endCaptures:{"1":{name:"punctuation.comma.haskell"}},patterns:[{include:"#comment_like"},{include:"#comma"},{include:"#double_colon"},{include:"#type_signature"},{include:"#record_decl_field"}]},record_field:{patterns:[{begin:/(?:([\p{Ll}\p{Lu}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\.']*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\)))/dgv,beginCaptures:{"1":{name:"variable.other.member.haskell",patterns:[{include:"#qualifier"}]},"2":{name:"punctuation.paren.haskell"},"3":{name:"variable.other.member.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(,)|(?=\})/dgv,endCaptures:{"1":{name:"punctuation.comma.haskell"}},patterns:[{include:"#comment_like"},{include:"#comma"},{include:"$self"}]},{include:"#record_wildcard"}]},record_wildcard:{captures:{"1":{name:"variable.other.member.wildcard.haskell"}},match:/(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(\.\.)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv},reserved_symbol:{patterns:[{captures:{"1":{name:"keyword.operator.double-dot.haskell"},"2":{name:"keyword.operator.colon.haskell"},"3":{name:"keyword.operator.eq.haskell"},"4":{name:"keyword.operator.lambda.haskell"},"5":{name:"keyword.operator.pipe.haskell"},"6":{name:"keyword.operator.arrow.left.haskell"},"7":{name:"keyword.operator.arrow.haskell"},"8":{name:"keyword.operator.arrow.left.tail.haskell"},"9":{name:"keyword.operator.arrow.left.tail.double.haskell"},"10":{name:"keyword.operator.arrow.tail.haskell"},"11":{name:"keyword.operator.arrow.tail.double.haskell"},"12":{name:"keyword.other.forall.haskell"}},match:/(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"'']])(?:(\.\.)|(:)|(=)|(\\)|(\|)|(<-|←)|(->|→)|(-<|↢)|(-<<|⤛)|(>-|⤚)|(>>-|⤜)|(∀))(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"'']])/dgv},{captures:{"1":{name:"keyword.operator.postfix.hash.haskell"}},match:/(?<=[[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\#\,\;\[\`\{]])(#+)(?![[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\)\,\;\]\`\}]])/dgv},{captures:{"1":{name:"keyword.operator.infix.tight.at.haskell"}},match:/(?<=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\)\}\]])(@)(?=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\(\[\{])/dgv},{captures:{"1":{name:"keyword.operator.prefix.tilde.haskell"},"2":{name:"keyword.operator.prefix.bang.haskell"},"3":{name:"keyword.operator.prefix.minus.haskell"},"4":{name:"keyword.operator.prefix.dollar.haskell"},"5":{name:"keyword.operator.prefix.double-dollar.haskell"}},match:/(?<![[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\(\,\;\[\`\{]])(?:(~)|(!)|(-)|(\$)|(\$\$))(?=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\(\{\[])/dgv}]},role_annotation:{patterns:[{begin:/^(\p{space}*)(type)\p{space}+(role)\b(?!')/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.role.haskell"}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.role-annotation.haskell",patterns:[{include:"#comment_like"},{include:"#type_constructor"},{captures:{"1":{name:"keyword.other.role.$1.haskell"}},match:/\b(?<!')(nominal|representational|phantom)\b(?!')/dgv}]}]},start_type_signature:{patterns:[{begin:/^(\p{space}*)(::|∷)(?![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])\p{space}*/dgv,beginCaptures:{"2":{name:"keyword.operator.double-colon.haskell"}},end:/(?=#?\)|\]|,|(?<!')\b(in|then|else|of)\b(?!')|(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:(\\|λ)|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([\(\)\,\;\[\]\`\{\}_"']|[^\p{S}\p{P}])|(#|@)-\}|(?=\}|;)|^(?!(?!)\p{space}*\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$))))/dgv,name:"meta.type-declaration.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])(::|∷)(?![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])/dgv,beginCaptures:{"1":{name:"keyword.operator.double-colon.haskell"}},end:/(?=#?\)|\]|,|\b(?<!')(in|then|else|of)\b(?!')|(#|@)-\}|(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:(\\|λ)|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([\(\)\,\;\[\]\`\{\}_"']|[^\p{S}\p{P}])|(?=\}|;)|(?=\n?$))/dgv,patterns:[{include:"#type_signature"}]}]},string_literal:{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.haskell"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.haskell"}},name:"string.quoted.double.haskell",patterns:[{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\\"'\&])/dgv,name:"constant.character.escape.haskell"},{match:/\\o[0-7]+|\\x[0-9A-Fa-f]+|\\[0-9]+/dgv,name:"constant.character.escape.octal.haskell"},{match:/\\\^[A-Z\@\[\]\\\^_]/dgv,name:"constant.character.escape.control.haskell"},{begin:/\\\p{space}/dgv,beginCaptures:{"0":{name:"constant.character.escape.begin.haskell"}},end:/\\/dgv,endCaptures:{"0":{name:"constant.character.escape.end.haskell"}},patterns:[{match:/\P{space}+/dgv,name:"invalid.illegal.character-not-allowed-here.haskell"}]}]},type_application:{patterns:[{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(')?(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"},"2":{name:"keyword.operator.promotion.haskell"},"3":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(')?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"},"2":{name:"keyword.operator.promotion.haskell"},"3":{name:"punctuation.bracket.haskell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.bracket.haskell"}},name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(?=")/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"}},end:/(?<=")/dgv,name:"meta.type-application.haskell",patterns:[{include:"#string_literal"}]},{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(?=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'])/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"}},end:/(?![\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'])/dgv,name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]}]},type_constructor:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"storage.type.haskell"}},match:/(')?((?:\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)(\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)/dgv},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"entity.name.namespace.haskell"},"4":{name:"storage.type.operator.haskell"},"5":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*((?:[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv}]},type_operator:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"storage.type.operator.infix.haskell"}},match:/(?:(?<!')('))?((?:\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)(?![\#\@]?-\})(#+|[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+(?<!#))/dgv},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.backtick.haskell"},"3":{name:"entity.name.namespace.haskell"},"4":{name:"storage.type.infix.haskell"},"5":{name:"punctuation.backtick.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}']*)(`)/dgv}]},type_signature:{patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*(\))/dgv,name:"support.constant.unit.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"support.constant.unit.unboxed.haskell"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*,[\p{space}\,]*(\))/dgv,name:"support.constant.tuple.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"support.constant.unit.unboxed.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*,[\p{space}\,]*(#)(\))/dgv,name:"support.constant.tuple.unboxed.haskell"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.bracket.haskell"},"3":{name:"punctuation.bracket.haskell"}},match:/(')?(\[)\p{space}*(\])/dgv,name:"support.constant.empty-list.haskell"},{include:"#integer_literals"},{match:/(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv,name:"keyword.operator.double-colon.haskell"},{include:"#forall"},{match:/=>|⇒/dgv,name:"keyword.operator.big-arrow.haskell"},{include:"#string_literal"},{match:/'[^']'/dgv,name:"invalid"},{include:"#type_application"},{include:"#reserved_symbol"},{include:"#type_operator"},{include:"#type_constructor"},{begin:/(\()(#)/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"}},end:/(#)(\))/dgv,endCaptures:{"1":{name:"keyword.operator.hash.haskell"},"2":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{begin:/(')?(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{begin:/(')?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.bracket.haskell"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.bracket.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{include:"#type_variable"}]},type_variable:{match:/\b(?<!')(?!(?:forall|deriving)\b(?!'))[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*/dgv,name:"variable.other.generic-type.haskell"},where:{patterns:[{begin:/(?<!')\b(where)\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.where.haskell"},"2":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"$self"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},{match:/\b(?<!')(where)\b(?!')/dgv,name:"keyword.other.where.haskell"}]}},scopeName:"source.haskell",embeddedLangs:undefined,aliases:["hs"]})
|
|
3
|
+
const lang = Object.freeze({displayName:"Haskell",fileTypes:["hs","hs-boot","hsig"],name:"haskell",patterns:[{include:"#liquid_haskell"},{include:"#comment_like"},{include:"#numeric_literals"},{include:"#string_literal"},{include:"#char_literal"},{match:/(?<!@|#)-\}/dgv,name:"invalid"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*(\))/dgv,name:"constant.language.unit.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"constant.language.unit.unboxed.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"punctuation.paren.haskell"}},match:/(\()\p{space}*,[\p{space}\,]*(\))/dgv,name:"support.constant.tuple.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*,[\p{space}\,]*(#)(\))/dgv,name:"support.constant.tuple.unboxed.haskell"},{captures:{"1":{name:"punctuation.bracket.haskell"},"2":{name:"punctuation.bracket.haskell"}},match:/(\[)\p{space}*(\])/dgv,name:"constant.language.empty-list.haskell"},{begin:/(\b(?<!')(module)|^(signature))(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.module.haskell"},"3":{name:"keyword.other.signature.haskell"}},end:/(?=\b(?<!')where\b(?!'))/dgv,name:"meta.declaration.module.haskell",patterns:[{include:"#comment_like"},{include:"#module_name"},{include:"#module_exports"},{match:/[a-z]+/dgv,name:"invalid"}]},{include:"#ffi"},{begin:/^(\p{space}*)(class)(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.class.haskell"}},end:/(?=(?<!')\bwhere\b(?!'))|(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.class.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(data|newtype)(?:\p{space}+(instance))?\p{space}+((?:(?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\b(?<!')(?:where|deriving)\b(?!')|\{-)[^\n])*)(?=\b(?<!'')where\b(?!''))/dgv,beginCaptures:{"2":{name:"keyword.other.$2.haskell"},"3":{name:"keyword.other.instance.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=(?<!')\bderiving\b(?!'))|(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.$2.generalized.haskell",patterns:[{include:"#comment_like"},{begin:/(?<!')\b(where)\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.where.haskell"},"2":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"#comment_like"},{include:"#gadt_constructor"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},{match:/\b(?<!')(where)\b(?!')/dgv,name:"keyword.other.where.haskell"},{include:"#deriving"},{include:"#gadt_constructor"}]},{include:"#role_annotation"},{begin:/^(\p{space}*)(pattern)\p{space}+([^\n]*?)\p{space}+(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv,beginCaptures:{"2":{name:"keyword.other.pattern.haskell"},"3":{patterns:[{include:"#comma"},{include:"#data_constructor"}]},"4":{name:"keyword.operator.double-colon.haskell"}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.pattern.type.haskell",patterns:[{include:"#type_signature"}]},{begin:/^\p{space}*(pattern)\b(?!')/dgv,captures:{"1":{name:"keyword.other.pattern.haskell"}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.pattern.haskell",patterns:[{include:"$self"}]},{begin:/^(\p{space}*)(data|newtype)(?:\p{space}+(family|instance))?\p{space}+(((?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\b(?<!')(?:where|deriving)\b(?!')|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.$2.haskell"},"3":{name:"keyword.other.$3.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.$2.algebraic.haskell",patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#forall"},{include:"#adt_constructor"},{include:"#context"},{include:"#record_decl"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(type)\p{space}+(family)\b(?!')(((?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\b(?<!')where\b(?!')|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.family.haskell"},"4":{patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.type.family.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(type)(?:\p{space}+(instance))?\p{space}+(((?!(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:=|--+|::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])|\{-)[^\n])*)/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.instance.haskell"},"4":{patterns:[{include:"#type_signature"}]}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.declaration.type.haskell",patterns:[{include:"#type_signature"}]},{begin:/^(\p{space}*)(instance)(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.instance.haskell"}},end:/(?=\b(?<!')(where)\b(?!'))|(?=\}|;)|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))/dgv,name:"meta.declaration.instance.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{include:"#type_signature"}]},{begin:/^(\p{space}*)(import)(\b(?!'))/dgv,beginCaptures:{"2":{name:"keyword.other.import.haskell"}},end:/(?=\b(?<!')(where)\b(?!'))|(?=\}|;)|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))/dgv,name:"meta.import.haskell",patterns:[{include:"#comment_like"},{include:"#where"},{captures:{"1":{name:"keyword.other.$1.haskell"}},match:/(qualified|as|hiding)/dgv},{include:"#module_name"},{include:"#module_exports"}]},{include:"#deriving"},{include:"#layout_herald"},{include:"#keyword"},{captures:{"1":{name:"keyword.other.$1.haskell"},"2":{patterns:[{include:"#comment_like"},{include:"#integer_literals"},{include:"#infix_op"}]}},match:/^\p{space}*(infix[lr]?)\p{space}+([^\n]*)/dgv,name:"meta.fixity-declaration.haskell"},{include:"#overloaded_label"},{include:"#type_application"},{include:"#reserved_symbol"},{include:"#fun_decl"},{include:"#qualifier"},{include:"#data_constructor"},{include:"#start_type_signature"},{include:"#prefix_op"},{include:"#infix_op"},{begin:/(\()(#)\p{space}/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"}},end:/(#)(\))/dgv,endCaptures:{"1":{name:"keyword.operator.hash.haskell"},"2":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{begin:/(\()/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{include:"#quasi_quote"},{begin:/(\[)/dgv,beginCaptures:{"1":{name:"punctuation.bracket.haskell"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.bracket.haskell"}},patterns:[{include:"#comma"},{include:"$self"}]},{include:"#record"}],repository:{adt_constructor:{patterns:[{include:"#comment_like"},{begin:/(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:(=)|(\|))(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv,beginCaptures:{"1":{name:"keyword.operator.eq.haskell"},"2":{name:"keyword.operator.pipe.haskell"}},end:/*@__PURE__*/ new EmulatedRegExp("(?:^|^)\\p{space}*(?:(?<!')\\b((?:[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\.])+)|('?(?<paren>\\((?:[^\\(\\)]*|(?:\\((?:[^\\(\\)]*|(?:\\((?:[^\\(\\)]*|(?:\\((?:[^\\(\\)]*|(?:\\((?:[^\\(\\)]*|(?:))*\\)))*\\)))*\\)))*\\)))*\\)))|('?(?<brac>\\((?:[^\\[\\]]*|(?:\\((?:[^\\[\\]]*|(?:\\((?:[^\\[\\]]*|(?:\\((?:[^\\[\\]]*|(?:\\((?:[^\\[\\]]*|(?:))*\\]))*\\]))*\\]))*\\]))*\\])))\\p{space}*(?:(?<![[\\p{S}\\p{P}]&&[^\\(\\)\\,\\;\\[\\]\\`\\{\\}_\"']])(:[[\\p{S}\\p{P}]&&[^\\(\\)\\,\\;\\[\\]\\`\\{\\}_\"']]*)|(`)([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(`))|(?<!')\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)|(\\()\\p{space}*(:[[\\p{S}\\p{P}]&&[^\\(\\)\\,\\;\\[\\]\\`\\{\\}_\"']]*)\\p{space}*(\\))","dgv",{"strategy":"clip_search"}),endCaptures:{"1":{patterns:[{include:"#type_signature"}]},"2":{patterns:[{include:"#type_signature"}]},"4":{patterns:[{include:"#type_signature"}]},"6":{name:"constant.other.operator.haskell"},"7":{name:"punctuation.backtick.haskell"},"8":{name:"constant.other.haskell"},"9":{name:"punctuation.backtick.haskell"},"10":{name:"constant.other.haskell"},"11":{name:"punctuation.paren.haskell"},"12":{name:"constant.other.operator.haskell"},"13":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#record_decl"},{include:"#forall"},{include:"#context"}]}]},block_comment:{applyEndPatternLast:1,begin:/\{-/dgv,captures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/-\}/dgv,name:"comment.block.haskell",patterns:[{include:"#block_comment"}]},char_literal:{captures:{"1":{name:"punctuation.definition.string.begin.haskell"},"2":{name:"constant.character.escape.haskell"},"3":{name:"constant.character.escape.octal.haskell"},"4":{name:"constant.character.escape.hexadecimal.haskell"},"5":{name:"constant.character.escape.control.haskell"},"6":{name:"punctuation.definition.string.end.haskell"}},match:/(?<![\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'])(')(?:[ -\[\]-\~]|(\\(?: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\\"'\\\&]))|(\\o[0-7]+)|(\\x[0-9A-Fa-f]+)|(\\\^[A-Z\@\[\]\\\^_]))(')/dgv,name:"string.quoted.single.haskell"},comma:{match:/,/dgv,name:"punctuation.separator.comma.haskell"},comment_like:{patterns:[{include:"#cpp"},{include:"#pragma"},{include:"#comments"}]},comments:{patterns:[{begin:/^(\p{space}*)(--\p{space}[\|\$])/dgv,beginCaptures:{"2":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/(?=^(?!\1--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])))()/dgv,name:"comment.block.documentation.haskell"},{begin:/(^[ \t]+)?(--\p{space}[\^\*])/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.haskell"}},end:/\n/dgv,name:"comment.line.documentation.haskell"},{applyEndPatternLast:1,begin:/\{-\p{space}?[\|\$\*\^]/dgv,captures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/-\}/dgv,name:"comment.block.documentation.haskell",patterns:[{include:"#block_comment"}]},{begin:/(^[ \t]+)?(?=--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]))/dgv,beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.haskell"}},comment:"Operators may begin with '--' as long as they are not entirely composed of '-' characters. This means comments can't be immediately followed by an allowable operator character.",end:/*@__PURE__*/ new EmulatedRegExp("(?!^)","dgv",{"strategy":"clip_search"}),patterns:[{begin:/--/dgv,beginCaptures:{"0":{name:"punctuation.definition.comment.haskell"}},end:/\n/dgv,name:"comment.line.double-dash.haskell"}]},{include:"#block_comment"}]},context:{captures:{"1":{patterns:[{include:"#comment_like"},{include:"#type_signature"}]},"2":{name:"keyword.operator.big-arrow.haskell"}},match:/([^\n]*)(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(=>|⇒)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv},cpp:{captures:{"1":{name:"punctuation.definition.preprocessor.c"}},comment:"In addition to Haskell's \"native\" syntax, GHC permits the C preprocessor to be run on a source file.",match:/^(#)[^\n]*(?=\n?$)/dgv,name:"meta.preprocessor.c"},data_constructor:{match:/\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*(?![\.'\p{L}\p{M}\p{N}\p{Pc}])/dgv,name:"constant.other.haskell"},deriving:{patterns:[{begin:/^(\p{space}*)(deriving)\p{space}+(?:(via|stock|newtype|anyclass)\p{space}+)?/dgv,beginCaptures:{"2":{name:"keyword.other.deriving.haskell"},"3":{name:"keyword.other.deriving.strategy.$3.haskell"}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.deriving.haskell",patterns:[{include:"#comment_like"},{match:/(?<!')\b(instance)\b(?!')/dgv,name:"keyword.other.instance.haskell"},{captures:{"1":{name:"keyword.other.deriving.strategy.$1.haskell"}},match:/(?<!')\b(via|stock|newtype|anyclass)\b(?!')/dgv},{include:"#type_signature"}]},{begin:/(deriving)(?:\p{space}+(stock|newtype|anyclass))?\p{space}*(\()/dgv,beginCaptures:{"1":{name:"keyword.other.deriving.haskell"},"2":{name:"keyword.other.deriving.strategy.$2.haskell"},"3":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},name:"meta.deriving.haskell",patterns:[{include:"#type_signature"}]},{captures:{"1":{name:"keyword.other.deriving.haskell"},"2":{name:"keyword.other.deriving.strategy.$2.haskell"},"3":{patterns:[{include:"#type_signature"}]},"5":{name:"keyword.other.deriving.strategy.via.haskell"},"6":{patterns:[{include:"#type_signature"}]}},match:/(deriving)(?:\p{space}+(stock|newtype|anyclass))?\p{space}+([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)(\p{space}+(via)\p{space}+([^\n]*)(?=\n?$))?/dgv,name:"meta.deriving.haskell"},{match:/(?<!')\b(via)\b(?!')/dgv,name:"keyword.other.deriving.strategy.via.haskell"}]},double_colon:{captures:{"1":{name:"keyword.operator.double-colon.haskell"}},match:/\p{space}*(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])\p{space}*/dgv},export_constructs:{patterns:[{include:"#comment_like"},{begin:/\b(?<!')(pattern)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.pattern.haskell"}},end:/([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv,endCaptures:{"1":{name:"constant.other.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"constant.other.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"}]},{begin:/\b(?<!')(type)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.type.haskell"}},end:/([\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv,endCaptures:{"1":{name:"storage.type.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"storage.type.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"}]},{match:/(?<!')\b[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*/dgv,name:"entity.name.function.haskell"},{match:/(?<!')\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*/dgv,name:"storage.type.haskell"},{include:"#record_wildcard"},{include:"#reserved_symbol"},{include:"#prefix_op"}]},ffi:{begin:/^(\p{space}*)(foreign)\p{space}+(import|export)\p{space}+/dgv,beginCaptures:{"2":{name:"keyword.other.foreign.haskell"},"3":{name:"keyword.other.$3.haskell"}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.$3.foreign.haskell",patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.calling-convention.$1.haskell"}},match:/\b(?<!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\p{space}+/dgv},{begin:/(?=")|(?=\b(?<!')([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)\b(?!'))/dgv,end:/(?=(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]))/dgv,patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.safety.$1.haskell"},"2":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]},"3":{name:"entity.name.function.haskell"},"4":{name:"entity.name.function.infix.haskell"}},match:/\b(?<!')(safe|unsafe|interruptible)\b(?!')\p{space}*("(?:\\"|[^"])*")?\p{space}*(?:\b(?<!'')([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)\b(?!')|\(\p{space}*(?!--+\))([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*\))/dgv},{captures:{"1":{name:"keyword.other.safety.$1.haskell"},"2":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]}},match:/\b(?<!')(safe|unsafe|interruptible)\b(?!')\p{space}*("(?:\\"|[^"])*")?\p{space}*(?=\n?$)/dgv},{captures:{"0":{name:"entity.name.foreign.haskell",patterns:[{include:"#string_literal"}]}},match:/"(?:\\"|[^"])*"/dgv},{captures:{"1":{name:"entity.name.function.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"entity.name.function.infix.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/\b(?<!'')([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)\b(?!')|(\()\p{space}*(?!--+\))([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv}]},{include:"#double_colon"},{include:"#type_signature"}]},float_literals:{captures:{"1":{name:"constant.numeric.floating.decimal.haskell"},"2":{name:"constant.numeric.floating.hexadecimal.haskell"}},comment:"Floats are decimal or hexadecimal",match:/\b(?<!')(?:([0-9][_0-9]*\.[0-9][_0-9]*(?:[eE][\-\+]?[0-9][_0-9]*)?|[0-9][_0-9]*[eE][\-\+]?[0-9][_0-9]*)|(0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*\.[0-9a-fA-F][_0-9a-fA-F]*(?:[pP][\-\+]?[0-9][_0-9]*)?|0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*[pP][\-\+]?[0-9][_0-9]*))\b(?!')/dgv},forall:{begin:/\b(?<!')(forall|∀)\b(?!')/dgv,beginCaptures:{"1":{name:"keyword.other.forall.haskell"}},end:/(\.)|(->|→)/dgv,endCaptures:{"1":{name:"keyword.operator.period.haskell"},"2":{name:"keyword.operator.arrow.haskell"}},patterns:[{include:"#comment_like"},{include:"#type_variable"},{include:"#type_signature"}]},fun_decl:{begin:/^(\p{space}*)(?<fn>(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:(?:[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*#*|\(\p{space}*(?!--+\))[[\p{S}\p{P}]&&[^\(\)\,\:\;\[\]\`\{\}_"']][[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*\p{space}*\))(?:\p{space}*,\p{space}*(?:))?))?))?))?))?)\p{space}*(?<![[\p{S}\p{P}]&&[^\)\,\;\]\`\}_"']])(::|∷)(?![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])/dgv,beginCaptures:{"2":{name:"entity.name.function.haskell",patterns:[{include:"#reserved_symbol"},{include:"#prefix_op"}]},"3":{name:"keyword.operator.double-colon.haskell"}},end:/(?=(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])((<-|←)|(=)|(-<|↢)|(-<<|⤛))([\(\)\,\;\[\]\`\{\}_"']|[^\p{S}\p{P}]))|(?=\}|;)|^(?!(?!)\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))/dgv,name:"meta.function.type-declaration.haskell",patterns:[{include:"#type_signature"}]},gadt_constructor:{patterns:[{begin:/^(\p{space}*)(?:(\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*)\p{space}*(\)))/dgv,beginCaptures:{"2":{name:"constant.other.haskell"},"3":{name:"punctuation.paren.haskell"},"4":{name:"constant.other.operator.haskell"},"5":{name:"punctuation.paren.haskell"}},end:/(?=\b(?<!'')deriving\b(?!'))|(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#double_colon"},{include:"#record_decl"},{include:"#type_signature"}]},{begin:/(\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}]*)|(\()\p{space}*(:[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]*)\p{space}*(\))/dgv,beginCaptures:{"1":{name:"constant.other.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"constant.other.operator.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(?=\n?$)/dgv,patterns:[{include:"#comment_like"},{include:"#deriving"},{include:"#double_colon"},{include:"#record_decl"},{include:"#type_signature"}]}]},infix_op:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"keyword.operator.infix.haskell"}},comment:"In case this regex seems overly general, note that Haskell permits the definition of new operators which can be nearly any string of punctuation characters, such as $%^&*.\n",match:/((?:(?<!'')('')?[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'']*\.)*)(#+|[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+(?<!#))/dgv},{captures:{"1":{name:"punctuation.backtick.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{patterns:[{include:"#data_constructor"}]},"4":{name:"punctuation.backtick.haskell"}},comment:"In case this regex seems unusual for an infix operator, note that Haskell\nallows any ordinary function application (elem 4 [1..10]) to be rewritten\nas an infix expression (4 `elem` [1..10]).\n",match:/(`)((?:[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'']*\.)*)([\p{Ll}\p{Lu}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'']*)(`)/dgv,name:"keyword.operator.function.infix.haskell"}]},inline_phase:{begin:/\[/dgv,beginCaptures:{"0":{name:"punctuation.bracket.haskell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.bracket.haskell"}},name:"meta.inlining-phase.haskell",patterns:[{match:/~/dgv,name:"punctuation.tilde.haskell"},{include:"#integer_literals"},{match:/[\p{L}\p{M}\p{N}\p{Pc}]*/dgv,name:"invalid"}]},integer_literals:{captures:{"1":{name:"constant.numeric.integral.decimal.haskell"},"2":{name:"constant.numeric.integral.hexadecimal.haskell"},"3":{name:"constant.numeric.integral.octal.haskell"},"4":{name:"constant.numeric.integral.binary.haskell"}},match:/\b(?<!')(?:([0-9][_0-9]*)|(0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*)|(0[oO]_*[0-7][_0-7]*)|(0[bB]_*[01][_01]*))\b(?!')/dgv},keyword:{captures:{"1":{name:"keyword.other.$1.haskell"},"2":{name:"keyword.control.$2.haskell"}},match:/\b(?<!')(?:(where|let|in|default)|(m?do|if|then|else|case|of|proc|rec))\b(?!')/dgv},layout_herald:{begin:/(?<!')\b(?:(where|let|m?do)|(of))\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.$1.haskell"},"2":{name:"keyword.control.of.haskell"},"3":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"$self"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},liquid_haskell:{begin:/\{-@/dgv,end:/@-\}/dgv,name:"block.liquidhaskell.haskell",patterns:[{include:"$self"}]},module_exports:{applyEndPatternLast:1,begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},name:"meta.declaration.exports.haskell",patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.other.module.haskell"}},match:/\b(?<!')(module)\b(?!')/dgv},{include:"#comma"},{include:"#export_constructs"},{begin:/\(/dgv,beginCaptures:{"0":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comment_like"},{include:"#record_wildcard"},{include:"#export_constructs"},{include:"#comma"}]}]},module_name:{match:/*@__PURE__*/ new EmulatedRegExp("(?<conid>[\\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{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.(?:))?))?))?))?))?)","dgv",{"hiddenCaptures":[3,4,5,6]}),name:"entity.name.namespace.haskell"},numeric_literals:{patterns:[{include:"#float_literals"},{include:"#integer_literals"}]},overloaded_label:{patterns:[{captures:{"1":{name:"keyword.operator.prefix.hash.haskell"},"2":{patterns:[{include:"#string_literal"}]}},match:/(?<![[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\(\,\;\[\`\{]])(#)(?:("(?:\\"|[^"])*")|[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'\.]+)/dgv,name:"entity.name.label.haskell"}]},pragma:{begin:/\{-#/dgv,end:/#-\}/dgv,name:"meta.preprocessor.haskell",patterns:[{begin:/\b(?<!')(LANGUAGE)\b(?!')/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"}},end:/(?=#-\})/dgv,patterns:[{match:/(?:No)?(?:AutoDeriveTypeable|DatatypeContexts|DoRec|IncoherentInstances|MonadFailDesugaring|MonoPatBinds|NullaryTypeClasses|OverlappingInstances|PatternSignatures|RecordPuns|RelaxedPolyRec)/dgv,name:"invalid.deprecated"},{captures:{"1":{name:"keyword.other.preprocessor.extension.haskell"}},match:/((?:No)?(?:AllowAmbiguousTypes|AlternativeLayoutRule|AlternativeLayoutRuleTransitional|Arrows|BangPatterns|BinaryLiterals|CApiFFI|CPP|CUSKs|ConstrainedClassMethods|ConstraintKinds|DataKinds|DefaultSignatures|DeriveAnyClass|DeriveDataTypeable|DeriveFoldable|DeriveFunctor|DeriveGeneric|DeriveLift|DeriveTraversable|DerivingStrategies|DerivingVia|DisambiguateRecordFields|DoAndIfThenElse|BlockArguments|DuplicateRecordFields|EmptyCase|EmptyDataDecls|EmptyDataDeriving|ExistentialQuantification|ExplicitForAll|ExplicitNamespaces|ExtendedDefaultRules|FlexibleContexts|FlexibleInstances|ForeignFunctionInterface|FunctionalDependencies|GADTSyntax|GADTs|GHCForeignImportPrim|Generali(?:s|z)edNewtypeDeriving|ImplicitParams|ImplicitPrelude|ImportQualifiedPost|ImpredicativeTypes|TypeFamilyDependencies|InstanceSigs|ApplicativeDo|InterruptibleFFI|JavaScriptFFI|KindSignatures|LambdaCase|LiberalTypeSynonyms|MagicHash|MonadComprehensions|MonoLocalBinds|MonomorphismRestriction|MultiParamTypeClasses|MultiWayIf|NumericUnderscores|NPlusKPatterns|NamedFieldPuns|NamedWildCards|NegativeLiterals|HexFloatLiterals|NondecreasingIndentation|NumDecimals|OverloadedLabels|OverloadedLists|OverloadedStrings|PackageImports|ParallelArrays|ParallelListComp|PartialTypeSignatures|PatternGuards|PatternSynonyms|PolyKinds|PolymorphicComponents|QuantifiedConstraints|PostfixOperators|QuasiQuotes|Rank2Types|RankNTypes|RebindableSyntax|RecordWildCards|RecursiveDo|RelaxedLayout|RoleAnnotations|ScopedTypeVariables|StandaloneDeriving|StarIsType|StaticPointers|Strict|StrictData|TemplateHaskell|TemplateHaskellQuotes|StandaloneKindSignatures|TraditionalRecordSyntax|TransformListComp|TupleSections|TypeApplications|TypeInType|TypeFamilies|TypeOperators|TypeSynonymInstances|UnboxedTuples|UnboxedSums|UndecidableInstances|UndecidableSuperClasses|UnicodeSyntax|UnliftedFFITypes|UnliftedNewtypes|ViewPatterns))/dgv},{include:"#comma"}]},{begin:/\b(?<!')(SPECIALI(?:S|Z)E)(?:\p{space}*(\[[^\[\]]*\])?\p{space}*|\p{space}+)(instance)\b(?!')/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"},"2":{patterns:[{include:"#inline_phase"}]},"3":{name:"keyword.other.instance.haskell"}},end:/(?=#-\})/dgv,patterns:[{include:"#type_signature"}]},{begin:/\b(?<!')(SPECIALI(?:S|Z)E)\b(?!')(?:\p{space}+(INLINE)\b(?!'))?\p{space}*(\[[^\[\]]*\])?\p{space}*/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"},"2":{name:"keyword.other.preprocessor.pragma.haskell"},"3":{patterns:[{include:"#inline_phase"}]}},end:/(?=#-\})/dgv,patterns:[{include:"$self"}]},{match:/\b(?<!')(LANGUAGE|OPTIONS_GHC|INCLUDE|MINIMAL|UNPACK|OVERLAPS|INCOHERENT|NOUNPACK|SOURCE|OVERLAPPING|OVERLAPPABLE|INLINE|NOINLINE|INLINE?ABLE|CONLIKE|LINE|COLUMN|RULES|COMPLETE)\b(?!')/dgiv,name:"keyword.other.preprocessor.haskell"},{begin:/\b(DEPRECATED|WARNING)\b/dgiv,beginCaptures:{"1":{name:"keyword.other.preprocessor.pragma.haskell"}},end:/(?=#-\})/dgv,patterns:[{include:"#string_literal"}]}]},prefix_op:{patterns:[{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"entity.name.function.infix.haskell"},"3":{name:"punctuation.paren.haskell"}},comment:"An operator cannot be composed entirely of '-' characters; instead, it should be matched as a comment.\n",match:/(\()\p{space}*(?!(?:--+|\.\.)\))(#+|[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+(?<!#))\p{space}*(\))/dgv}]},qualifier:{match:/\b(?<!')[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\./dgv,name:"entity.name.namespace.haskell"},quasi_quote:{patterns:[{begin:/(\[)(e|d|p)?(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"entity.name.quasi-quoter.haskell"},"3":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\3\]()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell",patterns:[{include:"$self"}]},{begin:/(\[)(t)(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"entity.name.quasi-quoter.haskell"},"3":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\3\]()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell",patterns:[{include:"#type_signature"}]},{begin:/(\[)(?:(\$\$)|(\$))?((?:[^\p{space}\p{S}\p{P}]|[\.'_])*)(\|\|?)/dgv,beginCaptures:{"1":{name:"keyword.operator.quasi-quotation.begin.haskell"},"2":{name:"keyword.operator.prefix.double-dollar.haskell"},"3":{name:"keyword.operator.prefix.dollar.haskell"},"4":{name:"entity.name.quasi-quoter.haskell",patterns:[{include:"#qualifier"}]},"5":{name:"keyword.operator.quasi-quotation.begin.haskell"}},end:/\5\]()()()()()/dgv,endCaptures:{"0":{name:"keyword.operator.quasi-quotation.end.haskell"}},name:"meta.quasi-quotation.haskell"}]},record:{begin:/(\{)(?!-)/dgv,beginCaptures:{"1":{name:"punctuation.brace.haskell"}},end:/(?<!-)(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},name:"meta.record.haskell",patterns:[{include:"#comment_like"},{include:"#record_field"}]},record_decl:{begin:/(\{)(?!-)/dgv,beginCaptures:{"1":{name:"punctuation.brace.haskell"}},end:/(?<!-)(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},name:"meta.record.definition.haskell",patterns:[{include:"#comment_like"},{include:"#record_decl_field"}]},record_decl_field:{begin:/(?:([\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\)))/dgv,beginCaptures:{"1":{name:"variable.other.member.definition.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"variable.other.member.definition.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(,)|(?=\})/dgv,endCaptures:{"1":{name:"punctuation.comma.haskell"}},patterns:[{include:"#comment_like"},{include:"#comma"},{include:"#double_colon"},{include:"#type_signature"},{include:"#record_decl_field"}]},record_field:{patterns:[{begin:/(?:([\p{Ll}\p{Lu}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\.']*)|(\()\p{space}*([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\)))/dgv,beginCaptures:{"1":{name:"variable.other.member.haskell",patterns:[{include:"#qualifier"}]},"2":{name:"punctuation.paren.haskell"},"3":{name:"variable.other.member.haskell"},"4":{name:"punctuation.paren.haskell"}},end:/(,)|(?=\})/dgv,endCaptures:{"1":{name:"punctuation.comma.haskell"}},patterns:[{include:"#comment_like"},{include:"#comma"},{include:"$self"}]},{include:"#record_wildcard"}]},record_wildcard:{captures:{"1":{name:"variable.other.member.wildcard.haskell"}},match:/(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(\.\.)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv},reserved_symbol:{patterns:[{captures:{"1":{name:"keyword.operator.double-dot.haskell"},"2":{name:"keyword.operator.colon.haskell"},"3":{name:"keyword.operator.eq.haskell"},"4":{name:"keyword.operator.lambda.haskell"},"5":{name:"keyword.operator.pipe.haskell"},"6":{name:"keyword.operator.arrow.left.haskell"},"7":{name:"keyword.operator.arrow.haskell"},"8":{name:"keyword.operator.arrow.left.tail.haskell"},"9":{name:"keyword.operator.arrow.left.tail.double.haskell"},"10":{name:"keyword.operator.arrow.tail.haskell"},"11":{name:"keyword.operator.arrow.tail.double.haskell"},"12":{name:"keyword.other.forall.haskell"}},match:/(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"'']])(?:(\.\.)|(:)|(=)|(\\)|(\|)|(<-|←)|(->|→)|(-<|↢)|(-<<|⤛)|(>-|⤚)|(>>-|⤜)|(∀))(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"'']])/dgv},{captures:{"1":{name:"keyword.operator.postfix.hash.haskell"}},match:/(?<=[[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\#\,\;\[\`\{]])(#+)(?![[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\)\,\;\]\`\}]])/dgv},{captures:{"1":{name:"keyword.operator.infix.tight.at.haskell"}},match:/(?<=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\)\}\]])(@)(?=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\(\[\{])/dgv},{captures:{"1":{name:"keyword.operator.prefix.tilde.haskell"},"2":{name:"keyword.operator.prefix.bang.haskell"},"3":{name:"keyword.operator.prefix.minus.haskell"},"4":{name:"keyword.operator.prefix.dollar.haskell"},"5":{name:"keyword.operator.prefix.double-dollar.haskell"}},match:/(?<![[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\p{S}\p{P}]&&[^\(\,\;\[\`\{]])(?:(~)|(!)|(-)|(\$)|(\$\$))(?=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}\(\{\[])/dgv}]},role_annotation:{patterns:[{begin:/^(\p{space}*)(type)\p{space}+(role)\b(?!')/dgv,beginCaptures:{"2":{name:"keyword.other.type.haskell"},"3":{name:"keyword.other.role.haskell"}},end:/(?=\}|;)|^(?!\1\p{space}+\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$)))()/dgv,name:"meta.role-annotation.haskell",patterns:[{include:"#comment_like"},{include:"#type_constructor"},{captures:{"1":{name:"keyword.other.role.$1.haskell"}},match:/\b(?<!')(nominal|representational|phantom)\b(?!')/dgv}]}]},start_type_signature:{patterns:[{begin:/^(\p{space}*)(::|∷)(?![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])\p{space}*/dgv,beginCaptures:{"2":{name:"keyword.operator.double-colon.haskell"}},end:/(?=#?\)|\]|,|(?<!')\b(in|then|else|of)\b(?!')|(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:(\\|λ)|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([\(\)\,\;\[\]\`\{\}_"']|[^\p{S}\p{P}])|(#|@)-\}|(?=\}|;)|^(?!(?!)\p{space}*\P{space}|\p{space}*(?:(?=\n?$)|\{-[^\@]|--+(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\{\}\`_"']])[^\n]*(?=\n?$))))/dgv,name:"meta.type-declaration.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])(::|∷)(?![[\p{S}\p{P}]&&[^\(\,\;\[\`\{_"']])/dgv,beginCaptures:{"1":{name:"keyword.operator.double-colon.haskell"}},end:/(?=#?\)|\]|,|\b(?<!')(in|then|else|of)\b(?!')|(#|@)-\}|(?<![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])(?:(\\|λ)|(<-|←)|(=)|(-<|↢)|(-<<|⤛))([\(\)\,\;\[\]\`\{\}_"']|[^\p{S}\p{P}])|(?=\}|;)|(?=\n?$))/dgv,patterns:[{include:"#type_signature"}]}]},string_literal:{begin:/"/dgv,beginCaptures:{"0":{name:"punctuation.definition.string.begin.haskell"}},end:/"/dgv,endCaptures:{"0":{name:"punctuation.definition.string.end.haskell"}},name:"string.quoted.double.haskell",patterns:[{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\\"'\&])/dgv,name:"constant.character.escape.haskell"},{match:/\\o[0-7]+|\\x[0-9A-Fa-f]+|\\[0-9]+/dgv,name:"constant.character.escape.octal.haskell"},{match:/\\\^[A-Z\@\[\]\\\^_]/dgv,name:"constant.character.escape.control.haskell"},{begin:/\\\p{space}/dgv,beginCaptures:{"0":{name:"constant.character.escape.begin.haskell"}},end:/\\/dgv,endCaptures:{"0":{name:"constant.character.escape.end.haskell"}},patterns:[{match:/\P{space}+/dgv,name:"invalid.illegal.character-not-allowed-here.haskell"}]}]},type_application:{patterns:[{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(')?(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"},"2":{name:"keyword.operator.promotion.haskell"},"3":{name:"punctuation.paren.haskell"}},end:/\)/dgv,endCaptures:{"0":{name:"punctuation.paren.haskell"}},name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(')?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"},"2":{name:"keyword.operator.promotion.haskell"},"3":{name:"punctuation.bracket.haskell"}},end:/\]/dgv,endCaptures:{"0":{name:"punctuation.bracket.haskell"}},name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]},{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(?=")/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"}},end:/(?<=")/dgv,name:"meta.type-application.haskell",patterns:[{include:"#string_literal"}]},{begin:/(?<=[\p{space}\,\;\[\]\{\}"])(@)(?=[\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'])/dgv,beginCaptures:{"1":{name:"keyword.operator.prefix.at.haskell"}},end:/(?![\p{Ll}_\p{Lu}\p{Lt}\p{Nd}'])/dgv,name:"meta.type-application.haskell",patterns:[{include:"#type_signature"}]}]},type_constructor:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"storage.type.haskell"}},match:/(')?((?:\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)(\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*)/dgv},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"entity.name.namespace.haskell"},"4":{name:"storage.type.operator.haskell"},"5":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*((?:[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)([[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+)\p{space}*(\))/dgv}]},type_operator:{patterns:[{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"entity.name.namespace.haskell"},"3":{name:"storage.type.operator.infix.haskell"}},match:/(?:(?<!')('))?((?:\b[\p{Lu}\p{Lt}][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*\.)*)(?![\#\@]?-\})(#+|[[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']]+(?<!#))/dgv},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.backtick.haskell"},"3":{name:"entity.name.namespace.haskell"},"4":{name:"storage.type.infix.haskell"},"5":{name:"punctuation.backtick.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}']*)(`)/dgv}]},type_signature:{patterns:[{include:"#comment_like"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*(\))/dgv,name:"support.constant.unit.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"support.constant.unit.unboxed.haskell"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"},"3":{name:"punctuation.paren.haskell"}},match:/(')?(\()\p{space}*,[\p{space}\,]*(\))/dgv,name:"support.constant.tuple.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*(#)(\))/dgv,name:"support.constant.unit.unboxed.haskell"},{captures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"},"3":{name:"keyword.operator.hash.haskell"},"4":{name:"punctuation.paren.haskell"}},match:/(\()(#)\p{space}*,[\p{space}\,]*(#)(\))/dgv,name:"support.constant.tuple.unboxed.haskell"},{captures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.bracket.haskell"},"3":{name:"punctuation.bracket.haskell"}},match:/(')?(\[)\p{space}*(\])/dgv,name:"support.constant.empty-list.haskell"},{include:"#integer_literals"},{match:/(::|∷)(?![[\p{S}\p{P}]&&[^\(\)\,\;\[\]\`\{\}_"']])/dgv,name:"keyword.operator.double-colon.haskell"},{include:"#forall"},{match:/=>|⇒/dgv,name:"keyword.operator.big-arrow.haskell"},{include:"#string_literal"},{match:/'[^']'/dgv,name:"invalid"},{include:"#type_application"},{include:"#reserved_symbol"},{include:"#type_operator"},{include:"#type_constructor"},{begin:/(\()(#)/dgv,beginCaptures:{"1":{name:"punctuation.paren.haskell"},"2":{name:"keyword.operator.hash.haskell"}},end:/(#)(\))/dgv,endCaptures:{"1":{name:"keyword.operator.hash.haskell"},"2":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{begin:/(')?(\()/dgv,beginCaptures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.paren.haskell"}},end:/(\))/dgv,endCaptures:{"1":{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{begin:/(')?(\[)/dgv,beginCaptures:{"1":{name:"keyword.operator.promotion.haskell"},"2":{name:"punctuation.bracket.haskell"}},end:/(\])/dgv,endCaptures:{"1":{name:"punctuation.bracket.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{include:"#type_variable"}]},type_variable:{match:/\b(?<!')(?!(?:forall|deriving)\b(?!'))[\p{Ll}_][\p{Ll}_\p{Lu}\p{Lt}\p{Nd}']*/dgv,name:"variable.other.generic-type.haskell"},where:{patterns:[{begin:/(?<!')\b(where)\p{space}*(\{)(?!-)/dgv,beginCaptures:{"1":{name:"keyword.other.where.haskell"},"2":{name:"punctuation.brace.haskell"}},end:/(\})/dgv,endCaptures:{"1":{name:"punctuation.brace.haskell"}},patterns:[{include:"$self"},{match:/;/dgv,name:"punctuation.semicolon.haskell"}]},{match:/\b(?<!')(where)\b(?!')/dgv,name:"keyword.other.where.haskell"}]}},scopeName:"source.haskell",embeddedLangs:undefined,aliases:["hs"]})
|
|
4
4
|
|
|
5
5
|
export default [
|
|
6
6
|
lang
|