diff --git a/lexers/embedded/fsharp.xml b/lexers/embedded/fsharp.xml
index f1601bcd4..f60897977 100644
--- a/lexers/embedded/fsharp.xml
+++ b/lexers/embedded/fsharp.xml
@@ -169,6 +169,9 @@
+
+
+
@@ -181,9 +184,6 @@
-
-
-
@@ -242,4 +242,4 @@
-
\ No newline at end of file
+
diff --git a/lexers/testdata/fsharp/fsharp.actual b/lexers/testdata/fsharp/fsharp.actual
new file mode 100644
index 000000000..e289c1102
--- /dev/null
+++ b/lexers/testdata/fsharp/fsharp.actual
@@ -0,0 +1,700 @@
+(**
+# First-level heading
+Some more documentation using `Markdown`.
+*)
+module SampleCode.SimpleTypes
+
+(**
+This comments was making the whole file render as a comment.
+**)
+
+// Compiler directives
+
+#if true
+#elif false
+#elseif false
+#endif
+#light "on"
+#nowarn
+#nowarn "9" "40"
+
+open System.Text// check that comments are handled correctly
+open System.Text // check that comments are handled correctly
+open System.Text.RegularExpressions(* check that comments are handled correctly *)
+open System.Text.RegularExpressions (* check that comments are handled correctly *)
+
+module Test =
+
+ (** **Check** that this line isn't capture for the markdown grammar **)
+ let a = ""
+
+ (**
+ This is an edge case, because in early implementation this is commented the whilte file
+
+ Line with indentation isn't colorized because markdown can't set up his context.
+ *)
+ let b = ""
+
+ (**
+This block is colorized becasue markdown can set up his context.
+
+# First-level heading
+This should be parsed as `markdown`.
+This is an edge case, because in early implementation this is parser the whole
+file as markdown
+ *)
+ let c = ""
+
+ (* Comments with nested (* (* *) *) works
+
+ This line should be shown commented.
+ class should not be colored
+ *)
+ let d = ""
+
+ let e = (* comment// *) "not a comment"
+
+/// **Description**
+///
+/// **Parameters**
+/// * `arg1` - parameter of type `string`
+/// * `arg2` - parameter of type `string`
+///
+/// **Output Type**
+/// * `string`
+///
+/// **Exceptions**
+///
+let markdownDemo (arg1 : string) (arg2 : string) =
+ ""
+
+/// **Checking that markdown is really working on single line**
+let markdownDemo2 (arg1 : string) (arg2 : string) =
+ ""
+
+// **This comment isn't formatted**
+
+(* Neither this one *)
+
+exception UndefinedValueException of string
+
+type Alias = int
+
+type Alpha = class end
+
+type LightDU =
+ | CaseA
+ | CaseB
+
+type EgalNewLine
+ = CaseA
+ | CaseB
+
+type Underscore_Name = | Underscore_Name of string
+
+let i32 = typeof
+let list = typedefof<_ list>
+
+type Accentué = int
+
+type Class1() =
+ member this.X = "F#"
+
+// Check accessibility modifier coloring
+type R = private { X : int }
+type U = private | X of int
+
+let private getArgResults, private removeArgResults, private setArgResults = "", "", ""
+
+// Check builder detection (based on a whitelist)
+let a = promise { }
+let b = pipeline { }
+let c = noColor { }
+
+// Check that known builder names aren't captured as builders when a
+// value name begins with one of them (e.g. `asyncResult`)
+// Also see ionide/ionide-vscode-fsharp#836
+let d =
+ let asyncF = async { }
+ asyncF
+
+// Whitespace between builder and opening brace is optional
+let e = async{ return 0 }
+
+type FancyClass(thing:int, var2 : string -> string, ``ddzdz``: string list, extra) as xxx =
+
+ let pf() = xxx.Test()
+ let mutable myInternalValue = null
+
+ member xxx.Test() = "F#"
+
+ // A read-only property.
+ member __.MyReadOnlyProperty = myInternalValue
+ // A write-only property.
+ member __.MyWriteOnlyProperty with set (value) = myInternalValue <- value
+ // A read-write property.
+ member __.MyReadWriteProperty
+ with get () = myInternalValue
+ and set (value) = myInternalValue <- value
+
+ member __.ReadAndWriteWithSignature
+ with get (count : int) : string = string count
+ and set (value : int) : unit = failwith ""
+
+ member __.MyReadWriteProperty with get () = myInternalValue
+ member __.MyReadWriteProperty with set (value) = myInternalValue <- value
+
+ abstract Update : int * string * string option * obj -> FancyClass
+ default this.Update (thing:int, var2 : string, ``name withh spaces``: string option, extra) = this
+
+ member val Property1 = thing
+ member val Property2 = "" with get, set
+
+ /// The typo in withh is intentional, because with is one of the `end` possibility
+ /// We consider it ok, because there is a low chance that a person will use `with` in a quoted variable
+ member __.Test2(thing:int, var2 : string, ``name withh spaces``: string option, extra) = ""
+
+ static member (>) (v1 : int, v2 : int) = v1 > v2
+ static member (<) (v1 : int, v2 : int) = v2 < v2
+ static member (< ) (v1 : int, v2 : int) = v2 < v2
+ static member (<|>) (v1 : int, v2 : int) = v2 < v2
+
+let inline internal (<) (x : int) ys = x + ys
+let (< ) (x : int) ys = x + ys
+let (<<.) a = 1
+let inline internal (<==) (x : int) ys = x + ys
+let inline internal (<==) x ys = x + ys
+
+// Check that this `get` and `set` methods are not messing the colourisation
+let get = ignore
+get ("maxime")
+let set = ignore
+set("maxime")
+
+// Arrow should be colored as a keyword and int as type definition
+let exec (buildOptions: int -> int -> int -> int) args = ""
+
+// This line is to check that member_declaration isn't propagate output of declaration scopes
+let p value = System.Int32.Parse(value)
+
+type TestGeneric<'arg, 'model, 'msg, 'view> private (*comments test*) (a: 'arg, model: 'model, msg: 'msg, view: 'view, notify : string -> unit ) as xxx =
+ class end
+
+type ``Program with spaces``<'arg, 'model, 'msg, 'view> =
+ class end
+
+type Program<'arg, 'model, 'msg, 'view> =
+ { Arg : 'arg
+ Model : 'model
+ Msg : 'msg
+ View : 'view }
+
+
+type Decoder<'a> =
+ class end
+
+let keyValuePairs (decoder : Decoder<'value>) : Decoder<(string * 'value) list> = failwith ""
+let keyValuePairs (decoder : Decoder<'value>) : Decoder<(string * 'value) list -> obj> = failwith ""
+let tuple2 (decoder1: Decoder<'T1>) (decoder2: Decoder<'T2>) : Decoder<'T1 * 'T2> = failwith ""
+
+let run (program : Program<'arg, 'model, 'msg, 'view>) = ""
+let run2 (program : unit -> Program<'arg, 'model, 'msg, 'view>) = ""
+
+type T =
+ abstract Item: selector: string -> string with get, set
+ abstract icon: width : int * height : int with get, set
+ abstract member Name: string option with get, set
+ abstract member NameTestComment: string (*I am a comments*) option with get, set
+ abstract member NameTestComment2: string //option with get, set
+ abstract member Keys: unit -> Program<'arg, 'model, 'msg, array>>>
+ abstract Run : program : Program<'arg, 'model, 'msg, array>>> -> unit
+ abstract ``open``: cacheName: string -> obj
+ abstract DrawElementsInstancedANGLE: mode: float * count: float * ``type with spaces``: float * offset: float * primcount: float
+ abstract Test : Result
+ abstract Test2 : mode: float * test : (Result, string>, string> list, int array> * int)
+ abstract TupleOfTuples : (int * (int * (Result, string>, string> list, int array> * int)))
+
+type FancyClass with
+ member __.Run (program : Program<'arg, 'model, 'msg, array<'view>>) = ()
+
+type FancyClass1(?thing:int) =
+ class end
+
+type private FancyClass2 (?thing:int) =
+ class end
+
+type FancyClass3 private (?thing:int) =
+ class end
+
+let foo =
+ { new System.IDisposable with
+ member __.Dispose() =
+ failwith "do nothing" }
+let bar =
+ use foo = new System.Threading.CancellationTokenSource()
+ ()
+
+let paramsColorWorksHereToo (client : obj, extraParam) (name : unit -> obj) : string = ""
+
+let endOfThisLineShouldBeCommented// (client : obj, extraParam) = ""
+ : string = ""
+
+// Fixed width comments also works and coloration is still correct after it
+let endOfThisLineShouldBeCommented2 (*(client : obj, extraParam) = ""*) (name: int) = ""
+
+// Fixed width comments also works even in tuples parameters
+// and coloration is still correct after it
+let private _emitLetBinding (il:int, (*methods:MethodSymbolTable, locals:LocalsSymbolTable,*) binding:obj) =
+ ""
+
+type EndOfThisLineShouldBe //Commented (a:int, b:int)
+ (a: int, b: int) =
+ class end
+
+let (name : string, age) = "", 0
+
+type NameRecord =
+ { Firstname : string
+ Surname : string }
+
+type NestedRecord =
+ { Nested : NestedRecord
+ PropB : string }
+
+
+// Test signature coloration
+let primitive : int = 0
+
+let tupleOfPrimitives : int * string list = 0, []
+let tupleOfPrimitives : (int * string) = 0, ""
+let tupleOfTuples : (int * (int * (int * int))) = failwith ""
+let tupleOfTuples : int * (int * (Result, string>, string> list, int array> * int)) = failwith ""
+let tupleOfTuples : (int * (int * (Result, string>, string> list, int array> * int))) = failwith ""
+let listOfTuples
+ (files : (string * string) list)
+ (files2 : (string * string) list)
+ : (int * (int * (Result list, int array> * int))) list = []
+let generics : Result = Ok []
+
+let tupleWithGenerics : Result * int = Ok [], 0
+let tupleWithAListOfGenerics (p1 : int * Map list) (p2 : int * Map list) : int * Map list = 1, []
+let tupleWithAListOfGenerics : int * Map list = 1, []
+let tupleWithAListOrArrayOfGenerics2 : int * Map list * Map array = 1, [], [||]
+
+// Really complexe nested generic type
+let tupleWithGenerics2 : (Result, string>, string> list, int array> * int) = Ok [], 0
+
+let lambda : int -> unit = ignore
+let lambda : (int -> unit) = ignore
+let lambda : (int -> unit) -> unit = ignore
+let lambda : (Result -> (string * int)) -> unit = ignore
+let lambda : (Result, string>, string> list, int array> -> Result list, int array> * int) -> unit = ignore
+let lambda ( x : (Result, string>, string> list, int array>
+ -> Result, string>, string> list, int array> * int)
+ -> unit) : ('T -> unit ) = ignore
+
+let inline isLoadingTime<'a> = ""
+let inline isLoadingTime<'a, 'b, 'c> = ""
+let inline method<'a> prefix chunck dzd zd = promise {
+ let! dzdz = ""
+ }
+
+
+let v ``var with spaces``= ""
+
+let printFullName { Firstname = firstname; Surname = surname } : string = firstname + " " + surname
+let printFirstName { Firstname = firstname } : string = firstname
+let printFirstName ({ Firstname = ``var with spaces`` } : NameRecord) ( _ : obj) : string = ``var with spaces``
+
+
+let ``test multiple backticks`` = row.``maxime``.Trim(), row.``Last Update`` // Test multiple backticks on the same line
+
+let nestedRecords ({ Nested = { Nested = { Nested = { Nested = value }; PropB = _ } }; PropB = propB } : NestedRecord) : string = value.PropB + " " + propB
+
+let variable = "value"
+
+// Check that style is apply even when declaration is on multiple lines
+let func arg1 arg2 = ""
+
+let func
+ arg1 arg2 = ""
+
+let func
+ arg1
+ arg2 = ""
+
+// Check that option is also colored as part of the type definition
+let debounce (debounce : int option) = ""
+
+// Check output type coloration
+let mutable timeoutID : float = 0.
+let test2 test (timeoutID : float option) : int option = None
+
+module test =
+ let t = 1
+
+module accentué =
+ let t = 1
+
+open test
+
+type MutableMembersTest = {
+ mutable test: string
+}
+
+// Test that variable named like: keyword' isn't colored in a match statement
+let test match' =
+ match match' with
+ | CaseA -> ""
+ | CaseB -> ""
+
+let test2 return' =
+ match return' with
+ | CaseA -> ""
+ | CaseB -> ""
+
+type RequestData =
+ { Params : string }
+
+type Client () =
+ member this.Request (req : RequestData) = ""
+
+let res (client : Client, extraParam) = client.Request { Params = "" }
+
+[]
+type kg
+
+let forLoop =
+ [ for index = 0 to 1 do
+ yield index ]
+
+type GenType<'a> = 'a
+
+type ``type with spaces`` = obj
+
+let t : ``type with spaces`` = null
+let t2 : obj = null
+
+type TestDUTypeColoration =
+ | CaseA
+ | CaseB of int
+ | CaseC of (int * (string * string) list)
+ | CaseD of name :string * age:int
+ | CaseE of client: Client
+ | CaseF of client: Client (*comment tests*) * (*comment tests*) string * port : int
+ | CaseG of (obj -> unit)
+ | CaseH of string * (obj -> unit)
+ // Check multiple declaration on one line
+ | CaseI of int | CaseJ of int
+ | CaseF2 of client: Client // * string * port : int
+ | FetchDomainsSuccess of Result
+ | CaseK of ``var with spaces``: string
+ | CaseL of ``var with spaces``: ``type with spaces``
+ | CaseM of v1 : ``type with spaces``
+ | CaseN of ``type with spaces``
+
+type TestRecordColoration<'a> =
+ { Firstname : string
+ Lastname : string
+ /// Test docs comments works with `markdown`
+ Age : (*comment tests*) int
+ Notify : string -> unit
+ Notify2 : string ->unit
+ Notify3 : string-> unit
+ Notify4 : string -> unit
+ Callback : (string * int) -> GenType<'a> -> Client // Comments tests
+ TypeWithSpace : ``type with spaces``
+ Nested : ((string * int) -> (*comment tests*) RequestData) -> Client
+ mutable Mutable : obj }
+
+let testRecordColoration =
+ { Firstname = "string" // Comments should work here
+ Lastname = "string"
+ Age = 10
+ Notify = fun _ -> ()
+ Notify2 = fun s -> ()
+ Notify3 = fun _ -> ()
+ Notify4 = fun _ -> ()
+ Callback = fun (a, (*b) comments should works here too*) b) -> unbox null
+ TypeWithSpace = null
+ Nested = fun func -> unbox null
+ Mutable = null }
+
+type CheckSingleLineRecord =
+ { Param1 : string; (*comment tests*) Param2 : obj }
+
+// Check that compression expression aren't mess up by the record coloration
+let a =
+ async {
+ let! a = async {
+ (*comment tests*)
+ return 0
+ }
+ return a
+ }
+
+// Test case for: https://github.com/ionide/ionide-fsgrammar/issues/147
+let testVariableWithModuleKeyword test_module =
+ if test_module then // This is the line where the problem is
+ ()
+
+// Edge cases provided by @selketjah
+// In this code some of the `type` word where colored in purple
+type Example =
+ { Type : int
+ SType : int
+ Stype : int
+ STypeT : int
+ StypeT : int // comments tests
+ TypeS : int (*comment tests*)
+ typeTest : int
+ stype : int
+ stypes : int
+ s_type : int }
+
+// Edge cases provided by @selketjah
+// `type` was colored as keyword
+// `with` as a Type declaration
+let temp (s : Example) =
+ match s.stype with
+ | 0 -> "whatever"
+ | 1 -> ""
+
+// Edge case when there is something after } the next type is not colored
+type One =
+ { Id : string } // test
+
+type Two =
+ { Id : int }
+
+// Support for anonymous records
+
+type Employee =
+ | Engineer of {| Prop1 : int; Prop2 : {| Prop1 : int; Prop2 : {| Prop1 : GenType>; Prop2 : {| Prop1 : int; Prop2 : List |} |} |} |}
+ | Manager of {| Prop1 : int; Prop2 : {| Prop1 : int; Prop2 : List |} |}
+
+let private standardIntInput (props : {| Dispatch : GenType>
+ Disabled : {| Prop1 : int; Prop2 : {| Prop1 : int; Prop2 : List |} |}
+ Errors : GenType<'Msg> list |}) = ""
+
+let test = fun (props : {| Dispatch : GenType>
+ Disabled : {| Prop1 : int; Prop2 : {| Prop1 : int; Prop2 : List |} |}
+ Errors : GenType<'Msg> list |}) -> ""
+
+type AR_Class () =
+ member this.Method1 (props : {| Dispatch : GenType>
+ Disabled : {| Prop1 : int; Prop2 : {| Prop1 : int; Prop2 : List |} |}
+ Errors : GenType<'Msg> list |}) = ""
+
+// Check anonymous function type signature
+let tx = fun (t : ``type with spaces``) (``var with spaces`` : Result) -> ()
+
+let private mixedArray msg (decoders: string []) (path: string) (values: obj[]): Result =
+ Ok []
+
+type Auto() =
+ static let (color, message) = failwith ""
+
+ static let (color : Result<'T, string>) = failwith ""
+
+ // Here `<`& `>` not in purple
+ static member GenerateDecoder<'T> (?isCamelCase : bool): GenType<'T> = failwith ""
+
+ // Here generics not colored
+ static member FromString<'T>(json: string, ?isCamelCase : bool): 'T = failwith ""
+
+
+type Example1 = { Test : int list }
+let test = { Test = [ 1;2;3 ] }
+// test.test shouldn't be colored
+let temp = { test with Test = 3 :: test.Test }
+
+type EitherBuilder() =
+ member __.Bind(x) = x
+ member __.Return(x) = x
+
+let either = EitherBuilder()
+
+let test x =
+ // Ensure coloration is working correctly in custom computation expressions
+ either {
+ let x = x
+ let! c = ""
+
+ return 0
+ }
+
+open System
+
+type QueueTrigger(msg : string, b : bool) =
+ inherit Attribute()
+
+type [] AppState2() =
+ class end
+
+type [] AppState<'a, 'b>() =
+ class end
+
+let run ([] content:string) = failwith ""
+
+type [] TestInlineAttributeGenerics<'a, 'b>(content:string) =
+ class end
+
+type [] TestInlineAttribute(content:string) =
+ class end
+
+[]
+type TestAttribue2(content:string) =
+ class end
+
+// // Make sure coloration support SRTP synthax
+// // The next code has been copied from
+// // https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/generics/statically-resolved-type-parameters
+
+let inline konst x _ = x
+
+type CFunctor() =
+ static member inline fmap (f: ^a -> ^b, a: ^a list) = List.map f a
+ static member inline fmap (f: ^a -> ^b, a: ^a option) =
+ match a with
+ | None -> None
+ | Some x -> Some (f x)
+
+ // default implementation of replace
+ static member inline replace< ^a, ^b, ^c, ^d, ^e when ^a :> CFunctor and (^a or ^d): (static member fmap: (^b -> ^c) * ^d -> ^e) > (a, f) =
+ ((^a or ^d) : (static member fmap : (^b -> ^c) * ^d -> ^e) (konst a, f))
+
+ // call overridden replace if present
+ static member inline replace< ^a, ^b, ^c when ^b: (static member replace: ^a * ^b -> ^c)>(a: ^a, f: ^b) =
+ (^b : (static member replace: ^a * ^b -> ^c) (a, f))
+
+let inline replace_instance< ^a, ^b, ^c, ^d when (^a or ^c): (static member replace: ^b * ^c -> ^d)> (a: ^b, f: ^c) =
+ ((^a or ^c): (static member replace: ^b * ^c -> ^d) (a, f))
+
+// Note the concrete type 'CFunctor' specified in the signature
+let inline replace (a: ^a) (f: ^b): ^a0 when (CFunctor or ^b): (static member replace: ^a * ^b -> ^a0) =
+ replace_instance (a, f)
+
+// End of SRTP synthax
+
+// Make sure constraints are correctly colored
+// https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/generics/constraints
+
+// Base Type Constraint
+type Class1<'T when 'T :> System.Exception> =
+ class end
+
+// Interface Type Constraint
+type Class2<'T when 'T :> System.IComparable> =
+ class end
+
+// Null constraint
+type Class3<'T when 'T : null> =
+ class end
+
+// Member constraint with static member
+type Class4<'T when 'T : (static member staticMethod1 : unit -> 'T) > =
+ class end
+
+// Member constraint with instance member
+type Class5<'T when 'T : (member Method1 : 'T -> int)> =
+ class end
+
+// Member constraint with property
+type Class6<'T when 'T : (member Property1 : int)> =
+ class end
+
+// Constructor constraint
+type Class7<'T when 'T : (new : unit -> 'T)>(thing:int, var2 : string -> string, ``ddzdz``: string list, extra) as xxx =
+ member val Field = new 'T()
+
+// Reference type constraint
+type Class8<'T when 'T : not struct> =
+ class end
+
+// Enumeration constraint with underlying value specified
+type Class9<'T when 'T : enum> =
+ class end
+
+// 'T must implement IComparable, or be an array type with comparable
+// elements, or be System.IntPtr or System.UIntPtr. Also, 'T must not have
+// the NoComparison attribute.
+type Class10<'T when 'T : comparison> =
+ class end
+
+// 'T must support equality. This is true for any type that does not
+// have the NoEquality attribute.
+type Class11<'T when 'T : equality> =
+ class end
+
+type Class12<'T when 'T : delegate> =
+ class end
+
+type Class13<'T when 'T : unmanaged> =
+ class end
+
+// Member constraints with two type parameters
+// Most often used with static type parameters in inline functions
+
+// Test that we are correctly detecting the end of the STRP syntahx when there is only one argument
+let inline doNothing(_value1 : ^T when ^T : (static member (+) : ^T * ^T -> ^T)) =
+ ""
+
+let inline doNothing(_value1 : ^Word when ^Word : (static member toJson : ^Word * ^Word -> ^Word)) =
+ ""
+
+let inline add2(value1 : ^T, value2: ^T when ^T : (static member (+) : ^T * ^T -> ^T)) =
+ value1 + value2
+
+let inline add(value1 : ^T when ^T : (static member (+) : ^T * ^T -> ^T), value2: ^T) =
+ value1 + value2
+
+// ^T and ^U must support operator +
+let inline heterogenousAdd(value1 : ^T when (^T or ^U) : (static member (+) : ^T * ^U -> ^T), value2 : ^U) =
+ value1 + value2
+
+let inline heterogenousAdd(value1 : ^Word when (^Word or ^U) : (static member (+) : ^Word * ^U -> ^Word), value2 : ^U) =
+ value1 + value2
+
+// If there are multiple constraints, use the and keyword to separate them.
+type Class14<'T,'U when 'T : equality and 'U : equality> =
+ class end
+
+type Class15<'``generic type with space`` when '``generic type with space`` :> System.Exception> =
+ class end
+
+// Type constrainst coloration also works in the constructor
+type Class16(value1 : ^T when (^T or ^U) : (static member (+) : ^T * ^U -> ^T), value2 : ^U) =
+ class end
+
+// Make sure that `:>` isn't closing the current generic tag
+let inline create<'a, 'b when 'a :> obj and 'a: (new: unit -> 'a)> () : 'b = failwith ""
+
+// Explicit Fields
+// Adapted from: https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/members/explicit-fields-the-val-keyword
+// And : https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/members/let-bindings-in-classes
+
+type MyType<'``Generic type with spaces``, 'T>() =
+ let mutable myInt1 = 10
+ static let mutable myInt3 = 3
+ [] static val mutable private myInt2 : int
+ [] val mutable myString : '``Generic type with spaces``
+ [] val mutable myString2 : 'T
+
+type MyClass =
+ val a : int
+ val b : int
+ // The following version of the constructor is an error
+ // because b is not initialized.
+ // new (a0, b0) = { a = a0; }
+ // The following version is acceptable because all fields are initialized.
+ new(a0, b0) = { a = a0; b = b0; }
+
+// Check that SRTP do not break standard syntax between `(` & `)`
+let incorrect =
+ (fun loadedModel ->
+ let temp = async {
+ return 0
+ }
+ let loadedModel = { loadedModel with FormState = Form.setWaiting false loadedModel.FormState }
+ ())
diff --git a/lexers/testdata/fsharp/fsharp.expected b/lexers/testdata/fsharp/fsharp.expected
new file mode 100644
index 000000000..626b7f03e
--- /dev/null
+++ b/lexers/testdata/fsharp/fsharp.expected
@@ -0,0 +1,6825 @@
+[
+ {"type":"Comment","value":"(**\n# First-level heading\nSome more documentation using `Markdown`.\n*)"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"module"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"SampleCode.SimpleTypes"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Comment","value":"(**\nThis comments was making the whole file render as a comment.\n**)"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Compiler directives\n"},
+ {"type":"Text","value":"\n"},
+ {"type":"CommentPreproc","value":"#if"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"true"},
+ {"type":"Text","value":"\n"},
+ {"type":"Operator","value":"#"},
+ {"type":"Keyword","value":"elif"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"false"},
+ {"type":"Text","value":"\n"},
+ {"type":"Operator","value":"#"},
+ {"type":"Name","value":"elseif"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"false"},
+ {"type":"Text","value":"\n"},
+ {"type":"CommentPreproc","value":"#endif"},
+ {"type":"Text","value":"\n"},
+ {"type":"CommentPreproc","value":"#light"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"on\""},
+ {"type":"Text","value":"\n"},
+ {"type":"CommentPreproc","value":"#nowarn"},
+ {"type":"Text","value":"\n"},
+ {"type":"CommentPreproc","value":"#nowarn"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"9\""},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"40\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"open"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"System.Text"},
+ {"type":"CommentSingle","value":"// check that comments are handled correctly\n"},
+ {"type":"Keyword","value":"open"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"System.Text"},
+ {"type":"Text","value":" "},
+ {"type":"CommentSingle","value":"// check that comments are handled correctly\n"},
+ {"type":"Keyword","value":"open"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"System.Text.RegularExpressions"},
+ {"type":"Comment","value":"(* check that comments are handled correctly *)"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"open"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"System.Text.RegularExpressions"},
+ {"type":"Text","value":" "},
+ {"type":"Comment","value":"(* check that comments are handled correctly *)"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"module"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"Test"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n\n "},
+ {"type":"Comment","value":"(** **Check** that this line isn't capture for the markdown grammar **)"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n "},
+ {"type":"Comment","value":"(**\n This is an edge case, because in early implementation this is commented the whilte file\n\n Line with indentation isn't colorized because markdown can't set up his context.\n *)"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"b"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n "},
+ {"type":"Comment","value":"(**\nThis block is colorized becasue markdown can set up his context.\n\n# First-level heading\nThis should be parsed as `markdown`.\nThis is an edge case, because in early implementation this is parser the whole\nfile as markdown\n *)"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n "},
+ {"type":"Comment","value":"(* Comments with nested (* (* *) *) works\n\n This line should be shown commented.\n class should not be colored\n *)"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"d"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Comment","value":"(* comment// *)"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"not a comment\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"LiteralStringDoc","value":"/// **Description**\n///\n/// **Parameters**\n/// * `arg1` - parameter of type `string`\n/// * `arg2` - parameter of type `string`\n///\n/// **Output Type**\n/// * `string`\n///\n/// **Exceptions**\n///\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"markdownDemo"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"arg1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"arg2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"LiteralStringDoc","value":"/// **Checking that markdown is really working on single line**\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"markdownDemo2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"arg1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"arg2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// **This comment isn't formatted**\n"},
+ {"type":"Text","value":"\n"},
+ {"type":"Comment","value":"(* Neither this one *)"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"exception"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"UndefinedValueException"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Alias"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Alpha"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"LightDU"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseA"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseB"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"EgalNewLine"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseA"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseB"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Underscore_Name"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Underscore_Name"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"i32"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"typeof"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"list"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"typedefof"},
+ {"type":"Operator","value":"\u003c_"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Accentué"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class1"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"this"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"X"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"F#\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Check accessibility modifier coloring\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"R"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"private"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"X"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"U"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"private"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"X"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"private"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"getArgResults"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"private"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"removeArgResults"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"private"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"setArgResults"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Check builder detection (based on a whitelist)\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"promise"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"b"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"pipeline"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"noColor"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Check that known builder names aren't captured as builders when a\n// value name begins with one of them (e.g. `asyncResult`)\n// Also see ionide/ionide-vscode-fsharp#836\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"d"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"asyncF"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"async"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"asyncF"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Whitespace between builder and opening brace is optional\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"async"},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"return"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"0"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"FancyClass"},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"thing"},
+ {"type":"Operator","value":":"},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"var2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``ddzdz``"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"extra"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"as"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"xxx"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n\n "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"pf"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"xxx"},
+ {"type":"Operator","value":"."},
+ {"type":"Name","value":"Test"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"mutable"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"myInternalValue"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"null"},
+ {"type":"Text","value":"\n\n "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"xxx"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"Test"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"F#\""},
+ {"type":"Text","value":"\n\n "},
+ {"type":"CommentSingle","value":"// A read-only property.\n"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"__"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"MyReadOnlyProperty"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"myInternalValue"},
+ {"type":"Text","value":"\n "},
+ {"type":"CommentSingle","value":"// A write-only property.\n"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"__"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"MyWriteOnlyProperty"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"set"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"value"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"myInternalValue"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"\u003c-"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"value"},
+ {"type":"Text","value":"\n "},
+ {"type":"CommentSingle","value":"// A read-write property.\n"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"__"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"MyReadWriteProperty"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"get"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"myInternalValue"},
+ {"type":"Text","value":"\n "},
+ {"type":"OperatorWord","value":"and"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"set"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"value"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"myInternalValue"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"\u003c-"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"value"},
+ {"type":"Text","value":"\n\n "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"__"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"ReadAndWriteWithSignature"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"get"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"count"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"count"},
+ {"type":"Text","value":"\n "},
+ {"type":"OperatorWord","value":"and"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"set"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"value"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"failwith"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"__"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"MyReadWriteProperty"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"get"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"myInternalValue"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"__"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"MyReadWriteProperty"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"set"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"value"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"myInternalValue"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"\u003c-"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"value"},
+ {"type":"Text","value":"\n\n "},
+ {"type":"Keyword","value":"abstract"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Update"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"option"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"FancyClass"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"default"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"this"},
+ {"type":"Operator","value":"."},
+ {"type":"Name","value":"Update"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"thing"},
+ {"type":"Operator","value":":"},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"var2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``name withh spaces``"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"option"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"extra"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"this"},
+ {"type":"Text","value":"\n\n "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"val"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Property1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"thing"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"val"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Property2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"get"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"set"},
+ {"type":"Text","value":"\n\n "},
+ {"type":"LiteralStringDoc","value":"/// The typo in withh is intentional, because with is one of the `end` possibility\n"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralStringDoc","value":"/// We consider it ok, because there is a low chance that a person will use `with` in a quoted variable\n"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"__"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"Test2"},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"thing"},
+ {"type":"Operator","value":":"},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"var2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``name withh spaces``"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"option"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"extra"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n "},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(\u003e)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"v1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"v2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"v1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"v2"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(\u003c)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"v1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"v2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"v2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"v2"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(\u003c"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"v1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"v2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"v2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"v2"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(\u003c|\u003e)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"v1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"v2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"v2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"v2"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"internal"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(\u003c)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ys"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ys"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(\u003c"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ys"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ys"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(\u003c\u003c.)"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"1"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"internal"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(\u003c==)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ys"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ys"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"internal"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(\u003c==)"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ys"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ys"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Check that this `get` and `set` methods are not messing the colourisation\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"get"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ignore"},
+ {"type":"Text","value":"\n"},
+ {"type":"Name","value":"get"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"LiteralString","value":"\"maxime\""},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"set"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ignore"},
+ {"type":"Text","value":"\n"},
+ {"type":"Name","value":"set"},
+ {"type":"Operator","value":"("},
+ {"type":"LiteralString","value":"\"maxime\""},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Arrow should be colored as a keyword and int as type definition\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"exec"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"buildOptions"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"args"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// This line is to check that member_declaration isn't propagate output of declaration scopes\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"p"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"value"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"System"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameNamespace","value":"Int32"},
+ {"type":"Punctuation","value":"."},
+ {"type":"Name","value":"Parse"},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"value"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"TestGeneric"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"arg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"model"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"msg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"view"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"private"},
+ {"type":"Text","value":" "},
+ {"type":"Comment","value":"(*comments test*)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"arg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"model"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"model"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"msg"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"msg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"view"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"view"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"notify"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"as"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"xxx"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``Program with spaces``"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"arg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"model"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"msg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"view"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Program"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"arg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"model"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"msg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"view"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Arg"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"arg"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Model"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"model"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Msg"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"msg"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"View"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"view"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Decoder"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"keyValuePairs"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"decoder"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Decoder"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"value"},
+ {"type":"Operator","value":"\u003e)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Decoder"},
+ {"type":"Operator","value":"\u003c("},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"value"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"failwith"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"keyValuePairs"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"decoder"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Decoder"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"value"},
+ {"type":"Operator","value":"\u003e)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Decoder"},
+ {"type":"Operator","value":"\u003c("},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"value"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"failwith"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"tuple2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"decoder1"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Decoder"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T1"},
+ {"type":"Operator","value":"\u003e)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"decoder2"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Decoder"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T2"},
+ {"type":"Operator","value":"\u003e)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Decoder"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T2"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"failwith"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"run"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"program"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Program"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"arg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"model"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"msg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"view"},
+ {"type":"Operator","value":"\u003e)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"run2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"program"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Program"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"arg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"model"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"msg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"view"},
+ {"type":"Operator","value":"\u003e)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"abstract"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Item"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"selector"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"get"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"set"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"abstract"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"icon"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"width"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"height"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"get"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"set"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"abstract"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Name"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"option"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"get"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"set"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"abstract"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"NameTestComment"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Comment","value":"(*I am a comments*)"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"option"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"get"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"set"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"abstract"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"NameTestComment2"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"CommentSingle","value":"//option with get, set\n"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"abstract"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Keys"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Program"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"arg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"model"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"msg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"view"},
+ {"type":"Operator","value":"\u003e\u003e\u003e\u003e"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"abstract"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Run"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"program"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Program"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"arg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"model"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"msg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"view"},
+ {"type":"Operator","value":"\u003e\u003e\u003e\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"abstract"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``open``"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"cacheName"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"abstract"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"DrawElementsInstancedANGLE"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"mode"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"float"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"count"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"float"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``type with spaces``"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"float"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"offset"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"float"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"primcount"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"float"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"abstract"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Test"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"abstract"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Test2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"mode"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"float"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"test"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"abstract"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"TupleOfTuples"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")))"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"FancyClass"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"__"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"Run"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"program"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Program"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"arg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"model"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"msg"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"view"},
+ {"type":"Operator","value":"\u003e\u003e)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"FancyClass1"},
+ {"type":"Operator","value":"(?"},
+ {"type":"Name","value":"thing"},
+ {"type":"Operator","value":":"},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"private"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"FancyClass2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(?"},
+ {"type":"Name","value":"thing"},
+ {"type":"Operator","value":":"},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"FancyClass3"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"private"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(?"},
+ {"type":"Name","value":"thing"},
+ {"type":"Operator","value":":"},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"foo"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"new"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"System"},
+ {"type":"Punctuation","value":"."},
+ {"type":"Name","value":"IDisposable"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"__"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"Dispose"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"failwith"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"do nothing\""},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"bar"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"use"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"foo"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"new"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"System"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameNamespace","value":"Threading"},
+ {"type":"Punctuation","value":"."},
+ {"type":"Name","value":"CancellationTokenSource"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":"\n "},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"paramsColorWorksHereToo"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"client"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"extraParam"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"name"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"endOfThisLineShouldBeCommented"},
+ {"type":"CommentSingle","value":"// (client : obj, extraParam) = \"\"\n"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Fixed width comments also works and coloration is still correct after it\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"endOfThisLineShouldBeCommented2"},
+ {"type":"Text","value":" "},
+ {"type":"Comment","value":"(*(client : obj, extraParam) = "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Comment","value":"*)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"name"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Fixed width comments also works even in tuples parameters\n// and coloration is still correct after it\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"private"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"_"},
+ {"type":"Name","value":"emitLetBinding"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"il"},
+ {"type":"Operator","value":":"},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Comment","value":"(*methods:MethodSymbolTable, locals:LocalsSymbolTable,*)"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"binding"},
+ {"type":"Operator","value":":"},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"EndOfThisLineShouldBe"},
+ {"type":"Text","value":" "},
+ {"type":"CommentSingle","value":"//Commented (a:int, b:int)\n"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"b"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"name"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"age"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"0"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"NameRecord"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Firstname"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Surname"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"NestedRecord"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Nested"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"NestedRecord"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"PropB"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n\n"},
+ {"type":"CommentSingle","value":"// Test signature coloration\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"primitive"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"0"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"tupleOfPrimitives"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"0"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"[]"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"tupleOfPrimitives"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"0"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"tupleOfTuples"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")))"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"failwith"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"tupleOfTuples"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":"))"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"failwith"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"tupleOfTuples"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")))"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"failwith"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"listOfTuples"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"files"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"files2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")))"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"[]"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"generics"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Ok"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"[]"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"tupleWithGenerics"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Ok"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"[]"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"0"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"tupleWithAListOfGenerics"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"p1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Map"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"p2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Map"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Map"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"1"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"[]"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"tupleWithAListOfGenerics"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Map"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"1"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"[]"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"tupleWithAListOrArrayOfGenerics2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Map"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Map"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"1"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"[]"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"[||]"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Really complexe nested generic type\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"tupleWithGenerics2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Ok"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"[]"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"0"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"lambda"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ignore"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"lambda"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ignore"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"lambda"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ignore"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"lambda"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":"))"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ignore"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"lambda"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ignore"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"lambda"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e,"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"array"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"ignore"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"isLoadingTime"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"isLoadingTime"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"b"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"c"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"method"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"prefix"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"chunck"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"dzd"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"zd"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"promise"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"let!"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"dzdz"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"v"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``var with spaces``"},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"printFullName"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Firstname"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"firstname"},
+ {"type":"Operator","value":";"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Surname"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"surname"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"firstname"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\" \""},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"surname"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"printFirstName"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Firstname"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"firstname"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"firstname"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"printFirstName"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"({"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Firstname"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``var with spaces``"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"NameRecord"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"_"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``var with spaces``"},
+ {"type":"Text","value":"\n\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``test multiple backticks``"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"row"},
+ {"type":"Operator","value":"."},
+ {"type":"Name","value":"``maxime``"},
+ {"type":"Operator","value":"."},
+ {"type":"Name","value":"Trim"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"row"},
+ {"type":"Operator","value":"."},
+ {"type":"Name","value":"``Last Update``"},
+ {"type":"Text","value":" "},
+ {"type":"CommentSingle","value":"// Test multiple backticks on the same line\n"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"nestedRecords"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"({"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Nested"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Nested"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Nested"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Nested"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"value"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"};"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"PropB"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"_"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"};"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"PropB"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"propB"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"NestedRecord"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"value"},
+ {"type":"Operator","value":"."},
+ {"type":"Name","value":"PropB"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\" \""},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"propB"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"variable"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"value\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Check that style is apply even when declaration is on multiple lines\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"func"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"arg1"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"arg2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"func"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"arg1"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"arg2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"func"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"arg1"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"arg2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Check that option is also colored as part of the type definition\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"debounce"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"debounce"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"option"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Check output type coloration\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"mutable"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"timeoutID"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"float"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"0"},
+ {"type":"Operator","value":"."},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"test2"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"test"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"timeoutID"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"float"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"option"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"option"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"None"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"module"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"test"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"t"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"1"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"module"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"accentué"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"t"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"1"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"open"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"test"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"MutableMembersTest"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"mutable"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"test"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":"\n"},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Test that variable named like: keyword' isn't colored in a match statement\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"test"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"match'"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"match"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"match'"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseA"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseB"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"test2"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"return'"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"match"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"return'"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseA"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseB"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"RequestData"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Params"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Client"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"this"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"Request"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"req"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"RequestData"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"res"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"client"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Client"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"extraParam"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"client"},
+ {"type":"Operator","value":"."},
+ {"type":"Name","value":"Request"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Params"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Operator","value":"[\u003c"},
+ {"type":"Name","value":"Measure"},
+ {"type":"Operator","value":"\u003e]"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"kg"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"forLoop"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"["},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"for"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"index"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"0"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"to"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"1"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"do"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"yield"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"index"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"]"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"GenType"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``type with spaces``"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"t"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``type with spaces``"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"null"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"t2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"null"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"TestDUTypeColoration"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseA"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseB"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseC"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseD"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"name"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"age"},
+ {"type":"Operator","value":":"},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseE"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"client"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Client"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseF"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"client"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Client"},
+ {"type":"Text","value":" "},
+ {"type":"Comment","value":"(*comment tests*)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Comment","value":"(*comment tests*)"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"port"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseG"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseH"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":"\n "},
+ {"type":"CommentSingle","value":"// Check multiple declaration on one line\n"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseI"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseJ"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseF2"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"client"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Client"},
+ {"type":"Text","value":" "},
+ {"type":"CommentSingle","value":"// * string * port : int\n"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"FetchDomainsSuccess"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``type with spaces``"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``type with spaces``"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseK"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``var with spaces``"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseL"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``var with spaces``"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``type with spaces``"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseM"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"v1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``type with spaces``"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CaseN"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``type with spaces``"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"TestRecordColoration"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Firstname"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Lastname"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":"\n "},
+ {"type":"LiteralStringDoc","value":"/// Test docs comments works with `markdown`\n"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Age"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Comment","value":"(*comment tests*)"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Notify"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Notify2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Notify3"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Notify4"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Callback"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"GenType"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Client"},
+ {"type":"Text","value":" "},
+ {"type":"CommentSingle","value":"// Comments tests\n"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"TypeWithSpace"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``type with spaces``"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Nested"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(("},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Comment","value":"(*comment tests*)"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"RequestData"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Client"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"mutable"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Mutable"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"testRecordColoration"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Firstname"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"string\""},
+ {"type":"Text","value":" "},
+ {"type":"CommentSingle","value":"// Comments should work here\n"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Lastname"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"string\""},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Age"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"10"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Notify"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"fun"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"_"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Notify2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"fun"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"s"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Notify3"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"fun"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"_"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Notify4"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"fun"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"_"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Callback"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"fun"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Comment","value":"(*b) comments should works here too*)"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"b"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"unbox"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"null"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"TypeWithSpace"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"null"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Nested"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"fun"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"func"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"unbox"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"null"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Mutable"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"null"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"CheckSingleLineRecord"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Param1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":";"},
+ {"type":"Text","value":" "},
+ {"type":"Comment","value":"(*comment tests*)"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Param2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Check that compression expression aren't mess up by the record coloration\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"async"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"let!"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"async"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":"\n "},
+ {"type":"Comment","value":"(*comment tests*)"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"return"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"0"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"return"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Test case for: https://github.com/ionide/ionide-fsgrammar/issues/147\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"testVariableWithModuleKeyword"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"test_module"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"if"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"test_module"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"then"},
+ {"type":"Text","value":" "},
+ {"type":"CommentSingle","value":"// This is the line where the problem is\n"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Edge cases provided by @selketjah\n// In this code some of the `type` word where colored in purple\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Example"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Type"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"SType"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Stype"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"STypeT"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"StypeT"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"CommentSingle","value":"// comments tests\n"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"TypeS"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Comment","value":"(*comment tests*)"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"typeTest"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"stype"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"stypes"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"s_type"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Edge cases provided by @selketjah\n// `type` was colored as keyword\n// `with` as a Type declaration\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"temp"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"s"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Example"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"match"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"s"},
+ {"type":"Operator","value":"."},
+ {"type":"Name","value":"stype"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"0"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"whatever\""},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Edge case when there is something after } the next type is not colored\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"One"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Id"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":" "},
+ {"type":"CommentSingle","value":"// test\n"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Two"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Id"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Support for anonymous records\n"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Employee"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Engineer"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":";"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":";"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"GenType"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"GenType"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Operator","value":"\u003e\u003e;"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":";"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"List"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|}"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|}"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|}"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|}"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Manager"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"of"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":";"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":";"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"List"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|}"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"private"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"standardIntInput"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"props"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Dispatch"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"GenType"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"GenType"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Operator","value":"\u003e\u003e"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Disabled"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":";"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":";"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"List"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|}"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|}"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Errors"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"GenType"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"Msg"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|})"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"test"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"fun"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"props"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Dispatch"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"GenType"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"GenType"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Operator","value":"\u003e\u003e"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Disabled"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":";"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":";"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"List"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|}"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|}"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Errors"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"GenType"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"Msg"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|})"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"AR_Class"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"this"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"Method1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"props"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Dispatch"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"GenType"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"GenType"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Operator","value":"\u003e\u003e"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Disabled"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":";"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":";"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Prop2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"List"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|}"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|}"},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Errors"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"GenType"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"Msg"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"|})"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Check anonymous function type signature\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"tx"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"fun"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"t"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``type with spaces``"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"``var with spaces``"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":"\u003e)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"private"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"mixedArray"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"msg"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"decoders"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"[]"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"path"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"values"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"NameBuiltinPseudo","value":"[]"},
+ {"type":"Operator","value":"):"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"Ok"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"[]"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Auto"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"color"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"message"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"failwith"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n "},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"color"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Result"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":"\u003e)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"failwith"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n "},
+ {"type":"CommentSingle","value":"// Here `\u003c`\u0026 `\u003e` not in purple\n"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"GenerateDecoder"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(?"},
+ {"type":"Name","value":"isCamelCase"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"bool"},
+ {"type":"Operator","value":"):"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"GenType"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"failwith"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n "},
+ {"type":"CommentSingle","value":"// Here generics not colored\n"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"FromString"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Operator","value":"\u003e("},
+ {"type":"Name","value":"json"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"?"},
+ {"type":"Name","value":"isCamelCase"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"bool"},
+ {"type":"Operator","value":"):"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"failwith"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Example1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Test"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"test"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Test"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"["},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"1"},
+ {"type":"Operator","value":";"},
+ {"type":"Name","value":"2"},
+ {"type":"Operator","value":";"},
+ {"type":"Name","value":"3"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"]"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n"},
+ {"type":"CommentSingle","value":"// test.test shouldn't be colored\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"temp"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"test"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Test"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"3"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"::"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"test"},
+ {"type":"Operator","value":"."},
+ {"type":"Name","value":"Test"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"EitherBuilder"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"__"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"Bind"},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"x"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"__"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"Return"},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"x"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"either"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"EitherBuilder"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"test"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"CommentSingle","value":"// Ensure coloration is working correctly in custom computation expressions\n"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"either"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"x"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"let!"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"c"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n "},
+ {"type":"Keyword","value":"return"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"0"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"open"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"System"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"QueueTrigger"},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"msg"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"b"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"bool"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"inherit"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Attribute"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"[\u003c"},
+ {"type":"Name","value":"AllowNullLiteral"},
+ {"type":"Operator","value":"\u003e]"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"AppState2"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"[\u003c"},
+ {"type":"Name","value":"AllowNullLiteral"},
+ {"type":"Operator","value":"\u003e]"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"AppState"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"b"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"run"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"([\u003c"},
+ {"type":"Name","value":"QueueTrigger"},
+ {"type":"Operator","value":"("},
+ {"type":"LiteralString","value":"\"something\""},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"false"},
+ {"type":"Operator","value":");"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"QueueTrigger"},
+ {"type":"Operator","value":"("},
+ {"type":"LiteralString","value":"\"something\""},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"false"},
+ {"type":"Operator","value":")\u003e]"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"content"},
+ {"type":"Operator","value":":"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"failwith"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"[\u003c"},
+ {"type":"Name","value":"QueueTrigger"},
+ {"type":"Operator","value":"("},
+ {"type":"LiteralString","value":"\"something\""},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"false"},
+ {"type":"Operator","value":")\u003e]"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"TestInlineAttributeGenerics"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"b"},
+ {"type":"Operator","value":"\u003e("},
+ {"type":"Name","value":"content"},
+ {"type":"Operator","value":":"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"[\u003c"},
+ {"type":"Name","value":"QueueTrigger"},
+ {"type":"Operator","value":"("},
+ {"type":"LiteralString","value":"\"something\""},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"false"},
+ {"type":"Operator","value":")\u003e]"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"TestInlineAttribute"},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"content"},
+ {"type":"Operator","value":":"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Operator","value":"[\u003c"},
+ {"type":"Name","value":"QueueTrigger"},
+ {"type":"Operator","value":"("},
+ {"type":"LiteralString","value":"\"something\""},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"false"},
+ {"type":"Operator","value":");"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"QueueTrigger"},
+ {"type":"Operator","value":"("},
+ {"type":"LiteralString","value":"\"something\""},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"false"},
+ {"type":"Operator","value":")\u003e]"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"TestAttribue2"},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"content"},
+ {"type":"Operator","value":":"},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// // Make sure coloration support SRTP synthax\n// // The next code has been copied from\n// // https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/generics/statically-resolved-type-parameters\n"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"konst"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"_"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"CFunctor"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"fmap"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"f"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"b"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"List"},
+ {"type":"Punctuation","value":"."},
+ {"type":"Name","value":"map"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"f"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"fmap"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"f"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"b"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"option"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"match"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"None"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"None"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"|"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Some"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"x"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Some"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"f"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"x"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":"\n\n "},
+ {"type":"CommentSingle","value":"// default implementation of replace\n"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"replace"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"b"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"c"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"d"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"e"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"CFunctor"},
+ {"type":"Text","value":" "},
+ {"type":"OperatorWord","value":"and"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(^"},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"OperatorWord","value":"or"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"d"},
+ {"type":"Operator","value":"):"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"fmap"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(^"},
+ {"type":"Name","value":"b"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"c"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"d"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"e"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"f"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"((^"},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"OperatorWord","value":"or"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"d"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"fmap"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(^"},
+ {"type":"Name","value":"b"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"c"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"d"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"e"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"konst"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"f"},
+ {"type":"Operator","value":"))"},
+ {"type":"Text","value":"\n\n "},
+ {"type":"CommentSingle","value":"// call overridden replace if present\n"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"replace"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"b"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"c"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"b"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"replace"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"b"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"c"},
+ {"type":"Operator","value":")\u003e("},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"f"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"b"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"(^"},
+ {"type":"Name","value":"b"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"replace"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"b"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"c"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"f"},
+ {"type":"Operator","value":"))"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"replace_instance"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"b"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"c"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"d"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(^"},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"OperatorWord","value":"or"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"c"},
+ {"type":"Operator","value":"):"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"replace"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"b"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"c"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"d"},
+ {"type":"Operator","value":")\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"b"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"f"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"c"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"((^"},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"OperatorWord","value":"or"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"c"},
+ {"type":"Operator","value":"):"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"replace"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"b"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"c"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"d"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"f"},
+ {"type":"Operator","value":"))"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Note the concrete type 'CFunctor' specified in the signature\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"replace"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"f"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"b"},
+ {"type":"Operator","value":"):"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"a0"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"CFunctor"},
+ {"type":"Text","value":" "},
+ {"type":"OperatorWord","value":"or"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"b"},
+ {"type":"Operator","value":"):"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"replace"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"b"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"a0"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"replace_instance"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Name","value":"CFunctor"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"_,"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"_,"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"_\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"f"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// End of SRTP synthax\n"},
+ {"type":"Text","value":"\n"},
+ {"type":"CommentSingle","value":"// Make sure constraints are correctly colored\n// https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/generics/constraints\n"},
+ {"type":"Text","value":"\n"},
+ {"type":"CommentSingle","value":"// Base Type Constraint\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class1"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"System"},
+ {"type":"Punctuation","value":"."},
+ {"type":"Name","value":"Exception"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Interface Type Constraint\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class2"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"System"},
+ {"type":"Punctuation","value":"."},
+ {"type":"Name","value":"IComparable"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Null constraint\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class3"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"null"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Member constraint with static member\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class4"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"staticMethod1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Member constraint with instance member\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class5"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Method1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Member constraint with property\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class6"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Property1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":")\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Constructor constraint\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class7"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"new"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Operator","value":")\u003e("},
+ {"type":"Name","value":"thing"},
+ {"type":"Operator","value":":"},
+ {"type":"Name","value":"int"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"var2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"``ddzdz``"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"string"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"list"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"extra"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"as"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"xxx"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"val"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"Field"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"new"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Reference type constraint\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class8"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"OperatorWord","value":"not"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"struct"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Enumeration constraint with underlying value specified\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class9"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"enum"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"uint32"},
+ {"type":"Operator","value":"\u003e\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// 'T must implement IComparable, or be an array type with comparable\n// elements, or be System.IntPtr or System.UIntPtr. Also, 'T must not have\n// the NoComparison attribute.\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class10"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"comparison"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// 'T must support equality. This is true for any type that does not\n// have the NoEquality attribute.\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class11"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"equality"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class12"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"delegate"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"System"},
+ {"type":"Punctuation","value":"."},
+ {"type":"Name","value":"EventArgs"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Operator","value":"\u003e\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class13"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"unmanaged"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Member constraints with two type parameters\n// Most often used with static type parameters in inline functions\n"},
+ {"type":"Text","value":"\n"},
+ {"type":"CommentSingle","value":"// Test that we are correctly detecting the end of the STRP syntahx when there is only one argument\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"doNothing"},
+ {"type":"Operator","value":"(_"},
+ {"type":"Name","value":"value1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(+)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Operator","value":"))"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"doNothing"},
+ {"type":"Operator","value":"(_"},
+ {"type":"Name","value":"value1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"Word"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"Word"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"toJson"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"Word"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"Word"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"Word"},
+ {"type":"Operator","value":"))"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"add2"},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"value1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"value2"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(+)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Operator","value":"))"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"value1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"value2"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"add"},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"value1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(+)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Operator","value":"),"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"value2"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"value1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"value2"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// ^T and ^U must support operator +\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"heterogenousAdd"},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"value1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"OperatorWord","value":"or"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"U"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(+)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"U"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Operator","value":"),"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"value2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"U"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"value1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"value2"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"heterogenousAdd"},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"value1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"Word"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(^"},
+ {"type":"Name","value":"Word"},
+ {"type":"Text","value":" "},
+ {"type":"OperatorWord","value":"or"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"U"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(+)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"Word"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"U"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"Word"},
+ {"type":"Operator","value":"),"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"value2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"U"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Name","value":"value1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"value2"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// If there are multiple constraints, use the and keyword to separate them.\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class14"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Operator","value":","},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"U"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"equality"},
+ {"type":"Text","value":" "},
+ {"type":"OperatorWord","value":"and"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"U"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"equality"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class15"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"``generic type with space``"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"``generic type with space``"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"System"},
+ {"type":"Punctuation","value":"."},
+ {"type":"Name","value":"Exception"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Type constrainst coloration also works in the constructor\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"Class16"},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"value1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"OperatorWord","value":"or"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"U"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"member"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"(+)"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"U"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"T"},
+ {"type":"Operator","value":"),"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"value2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"^"},
+ {"type":"Name","value":"U"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"class"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"end"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Make sure that `:\u003e` isn't closing the current generic tag\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"inline"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"create"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"b"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"when"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"obj"},
+ {"type":"Text","value":" "},
+ {"type":"OperatorWord","value":"and"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"new"},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"KeywordType","value":"unit"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"a"},
+ {"type":"Operator","value":")\u003e"},
+ {"type":"Text","value":" "},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"b"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"failwith"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"\""},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Explicit Fields\n// Adapted from: https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/members/explicit-fields-the-val-keyword\n// And : https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/members/let-bindings-in-classes\n"},
+ {"type":"Text","value":"\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"MyType"},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"``Generic type with spaces``"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"mutable"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"myInt1"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"10"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"mutable"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"myInt3"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"3"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"[\u003c"},
+ {"type":"Name","value":"DefaultValue"},
+ {"type":"Operator","value":"\u003e]"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"static"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"val"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"mutable"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"private"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"myInt2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"[\u003c"},
+ {"type":"Name","value":"DefaultValue"},
+ {"type":"Operator","value":"\u003e]"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"val"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"mutable"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"myString"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"``Generic type with spaces``"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"[\u003c"},
+ {"type":"Name","value":"DefaultValue"},
+ {"type":"Operator","value":"\u003e]"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"val"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"mutable"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"myString2"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"'"},
+ {"type":"Name","value":"T"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"Keyword","value":"type"},
+ {"type":"Text","value":" "},
+ {"type":"NameClass","value":"MyClass"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"val"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"val"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"b"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":":"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"int"},
+ {"type":"Text","value":"\n "},
+ {"type":"CommentSingle","value":"// The following version of the constructor is an error\n"},
+ {"type":"Text","value":" "},
+ {"type":"CommentSingle","value":"// because b is not initialized.\n"},
+ {"type":"Text","value":" "},
+ {"type":"CommentSingle","value":"// new (a0, b0) = { a = a0; }\n"},
+ {"type":"Text","value":" "},
+ {"type":"CommentSingle","value":"// The following version is acceptable because all fields are initialized.\n"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"new"},
+ {"type":"Operator","value":"("},
+ {"type":"Name","value":"a0"},
+ {"type":"Operator","value":","},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"b0"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"a"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"a0"},
+ {"type":"Operator","value":";"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"b"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"b0"},
+ {"type":"Operator","value":";"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n\n"},
+ {"type":"CommentSingle","value":"// Check that SRTP do not break standard syntax between `(` \u0026 `)`\n"},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"incorrect"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"("},
+ {"type":"Keyword","value":"fun"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"loadedModel"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"-\u003e"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"temp"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"async"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"return"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"0"},
+ {"type":"Text","value":"\n "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n "},
+ {"type":"Keyword","value":"let"},
+ {"type":"Text","value":" "},
+ {"type":"NameVariable","value":"loadedModel"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"{"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"loadedModel"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"with"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"FormState"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"="},
+ {"type":"Text","value":" "},
+ {"type":"NameNamespace","value":"Form"},
+ {"type":"Punctuation","value":"."},
+ {"type":"Name","value":"setWaiting"},
+ {"type":"Text","value":" "},
+ {"type":"Keyword","value":"false"},
+ {"type":"Text","value":" "},
+ {"type":"Name","value":"loadedModel"},
+ {"type":"Operator","value":"."},
+ {"type":"Name","value":"FormState"},
+ {"type":"Text","value":" "},
+ {"type":"Operator","value":"}"},
+ {"type":"Text","value":"\n "},
+ {"type":"NameBuiltinPseudo","value":"()"},
+ {"type":"Operator","value":")"},
+ {"type":"Text","value":"\n"}
+]
diff --git a/lexers/testdata/fsharp/fsharp_package_reference.actual b/lexers/testdata/fsharp/fsharp_package_reference.actual
new file mode 100644
index 000000000..8d406785d
--- /dev/null
+++ b/lexers/testdata/fsharp/fsharp_package_reference.actual
@@ -0,0 +1 @@
+#r "nuget: Newtonsoft.Json"
diff --git a/lexers/testdata/fsharp/fsharp_package_reference.expected b/lexers/testdata/fsharp/fsharp_package_reference.expected
new file mode 100644
index 000000000..62736786e
--- /dev/null
+++ b/lexers/testdata/fsharp/fsharp_package_reference.expected
@@ -0,0 +1,6 @@
+[
+ {"type":"CommentPreproc","value":"#r"},
+ {"type":"Text","value":" "},
+ {"type":"LiteralString","value":"\"nuget: Newtonsoft.Json\""},
+ {"type":"Text","value":"\n"}
+]