Repository: alecthomas/chroma
Pull request #1083 (2025-05-26 23:24:45)

Add Core lexer
Adds very basic support for the [Core programming language](https://core-lang.dev/).

[TextMate grammar](https://codeberg.org/core-lang/core/src/branch/main/tooling/core.tmbundle/Syntaxes/core.tmLanguage.json) for reference.


Patch:
diff --git a/lexers/embedded/core.xml b/lexers/embedded/core.xml
new file mode 100644
index 0000000..c5aa432
--- /dev/null
+++ b/lexers/embedded/core.xml
@@ -0,0 +1,79 @@
+<lexer>
+  <config>
+    <name>Core</name>
+    <alias>core</alias>
+    <filename>*.core</filename>
+    <mime_type>text/x-core</mime_type>
+  </config>
+  <rules>
+    <state name="root">
+      <rule pattern="\s+">
+        <token type="TextWhitespace"/>
+      </rule>
+      <rule pattern="//(.*?)\n">
+        <token type="CommentSingle"/>
+      </rule>
+      <rule pattern="(const|class|value|union|enum|trait|impl|annotation)\b">
+        <token type="KeywordDeclaration"/>
+      </rule>
+      <rule pattern="(fun|let|var)\b">
+        <token type="KeywordDeclaration"/>
+      </rule>
+      <rule pattern="(mod|use)\b">
+        <token type="KeywordNamespace"/>
+      </rule>
+      <rule pattern="(if|else|is|for|in|while|return)\b">
+        <token type="Keyword"/>
+      </rule>
+      <rule pattern="(true|false|self)\b">
+        <token type="KeywordConstant"/>
+      </rule>
+      <rule pattern="0[b][01](_?[01])*(i32|i64|u8|f32|f64)?">
+        <token type="LiteralNumberBin"/>
+      </rule>
+      <rule pattern="0[x][\da-fA-F](_?[\dA-Fa-f])*(i32|i64|u8|f32|f64)?">
+        <token type="LiteralNumberHex"/>
+      </rule>
+      <rule pattern="\d(_?\d)*\.\d(_?\d)*([eE][-+]?\d(_?\d)*)?(f32|f64)?">
+        <token type="LiteralNumberFloat"/>
+      </rule>
+      <rule pattern="\d(_?\d)*(i32|i64|u8|f32|f64)?">
+        <token type="LiteralNumberInteger"/>
+      </rule>
+      <rule pattern="&#34;">
+        <token type="LiteralString"/>
+        <push state="string"/>
+      </rule>
+      <rule pattern="@([a-z_]\w*[!?]?)">
+        <token type="NameAttribute"/>
+      </rule>
+      <rule pattern="===|!==|==|!=|&gt;=|&lt;=|[&gt;&lt;*/+-=&amp;|^]">
+        <token type="Operator"/>
+      </rule>
+      <rule pattern="[A-Z][A-Za-z0-9_]*">
+        <token type="NameClass"/>
+      </rule>
+      <rule pattern="([a-z_]\w*[!?]?)">
+        <token type="Name"/>
+      </rule>
+      <rule pattern="[(){}\[\],.;]">
+        <token type="Punctuation"/>
+      </rule>
+    </state>
+    <state name="string">
+      <rule pattern="&#34;">
+        <token type="LiteralString"/>
+        <pop depth="1"/>
+      </rule>
+      <rule pattern="\\[&#34;\\fnrt]|\\u\{[\da-fA-F]{1,6}\}">
+        <token type="LiteralStringEscape"/>
+      </rule>
+      <rule pattern="[^\\&#34;]+">
+        <token type="LiteralString"/>
+      </rule>
+      <rule pattern="\\">
+        <token type="LiteralString"/>
+      </rule>
+    </state>
+  </rules>
+</lexer>


Test patch:
diff --git a/lexers/testdata/core.actual b/lexers/testdata/core.actual
new file mode 100644
index 0000000..f4f61cb
--- /dev/null
+++ b/lexers/testdata/core.actual
@@ -0,0 +1,187 @@
+@pub use collections.{Array, BitSet, BitVec, HashMap, HashSet, List, Queue};
+
+@pub mod annotations;
+
+@pub @internal fun unreachable[T](): T
+
+@pub fun unimplemented(): Unit = fatalError("not yet implemented")
+
+fun isValidUtf8(data: Array[UInt8]): Bool {
+  var i = 0i64
+
+  while i < data.size {
+    let by = data(i).toInt32
+    var codepoint = 0i32
+    var bytes = 0i32
+    var min = 0i32
+    var max = 0i32
+
+    if by & 0x80i32 == 0i32 {
+      bytes = 0
+      i = i + 1i64
+    } else {
+      if by
+      ... & 0xC0i32 == 0x80i32 {
+        return false
+      }
+      ... & 0xE0i32 == 0xC0i32 {
+        codepoint = by & 0x1Fi32
+        bytes = 1
+        min = 0x80
+        max = 0x7FFi32
+      }
+      ... & 0xF0i32 == 0xE0i32 {
+        codepoint = by & 0xFi32
+        bytes = 2i32
+        min = 0x800i32
+        max = 0xFFFFi32
+      }
+      ... & 0xF8i32 == 0xF0i32 {
+        codepoint = by & 0x7i32
+        bytes = 3
+        min = 0x10000
+        max = 0x10FFFFi32
+      }
+
+      while bytes > 0i32 {
+        bytes = bytes - 1i32
+        i = i + 1i64
+
+        if i >= data.size {
+          return false
+        }
+
+        let by = data(i).toInt32
+
+        if by & 0xC0i32 != 0x80i32 {
+          return false
+        }
+
+        codepoint = codepoint.shiftLeft(6i32) | (by & 0x3Fi32)
+      }
+
+      if codepoint < min || codepoint > max {
+        return false
+      }
+
+      i = i + 1i64
+    }
+  }
+
+  return true
+}
+
+@internal fun unsafeKillRefs[T](arr: Array[T], idx: Int64): Unit
+
+@pub class Stacktrace {
+  backtrace: Option[Array[Int32]],
+  elements: Option[Array[StacktraceElement]],
+}
+
+impl Stacktrace {
+  @pub @static fun new(): Stacktrace {
+    let trace = Stacktrace(None[Array[Int32]], None[Array[StacktraceElement]])
+    trace.retrieveStacktrace()
+    trace
+  }
+
+  @pub fun getStacktrace(): Array[StacktraceElement] {
+    if self.elements.isSome {
+      return self.elements.getOrPanic()
+    }
+
+    if self.backtrace.isNone {
+      let elements = Array[StacktraceElement]::new()
+      self.elements = Some[Array[StacktraceElement]](elements)
+      return elements
+    }
+
+    let backtraceLength = self.backtrace.getOrPanic().size
+    var i = 0i64
+    let len = backtraceLength / 2i64
+    let elements = List[StacktraceElement]::new()
+    elements.reserve(len)
+
+    while i < len {
+      elements.push(self.getStacktraceElement(i))
+      i = i + 1i64
+    }
+
+    let elements = elements.toArray()
+    self.elements = Some(elements)
+    return elements
+  }
+
+  @pub fun printStacktrace(): Unit {
+    let x = self.getStacktrace()
+    var i = 0i64
+
+    for frame in self.getStacktrace() {
+      println(frame.toString())
+    }
+  }
+
+  @internal fun retrieveStacktrace(): Unit
+  @internal fun getStacktraceElement(idx: Int64): StacktraceElement
+}
+
+class StacktraceElement {
+  name: String,
+  line: Int32,
+}
+
+impl StacktraceElement {
+  fun toString(): String = "${self.name}: ${self.line}"
+}
+
+/* total order */
+@pub trait Sortable {
+  fun sortsAs(other: Self): Int32
+  // ideally we would be able to provide a default implementation for the next 3 methods based on `sortsAs`
+  fun sortsBefore(other: Self): Bool
+  fun sortsAfter(other: Self): Bool
+  fun sortsSame(other: Self): Bool
+}
+
+@pub enum Option[T] {
+  Some(T),
+  None,
+}
+
+use Option.Some
+use Option.None
+
+impl[T] Option[T] {
+  @pub fun isNone: Bool = if self
+    ... is Some(_) { false }
+    ... is None    { true  }
+
+  @pub fun isSome: Bool = if self
+    ... is Some(_) { true  }
+    ... is None    { false }
+}
+
+impl[T] Option[Option[T]] {
+  // WTF -- removing `()` causes memory corruption in main (tests/stdlib/option-flatten.core:6) -- WTF
+  @pub fun flatten(): Option[T] = if self
+    ... is Some(val) { val }
+    ... is None      { None[T] }
+}
+
+@pub enum Result[T, E] {
+  Pass(T),
+  Fail(E),
+}
+
+use Result.Pass
+use Result.Fail
+
+impl[T, E] Result[T, E] {
+  @pub fun isPass: Bool = if self
+    ... is Pass(_) { true  }
+    ... is Fail(_) { false }
+
+  @pub fun isFail: Bool = if self
+    ... is Pass(_) { false }
+    ... is Fail(_) { true  }
+}
diff --git a/lexers/testdata/core.expected b/lexers/testdata/core.expected
new file mode 100644
index 0000000..046a7e3
--- /dev/null
+++ b/lexers/testdata/core.expected
@@ -0,0 +1,1334 @@
+[
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordNamespace","value":"use"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"collections"},
+  {"type":"Operator","value":"."},
+  {"type":"Punctuation","value":"{"},
+  {"type":"NameClass","value":"Array"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"BitSet"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"BitVec"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"HashMap"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"HashSet"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"List"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Queue"},
+  {"type":"Punctuation","value":"}"},
+  {"type":"Operator","value":";"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordNamespace","value":"mod"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"annotations"},
+  {"type":"Operator","value":";"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameAttribute","value":"@internal"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"unreachable"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"T"},
+  {"type":"Punctuation","value":"]()"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"T"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"unimplemented"},
+  {"type":"Punctuation","value":"()"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Unit"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"fatalError"},
+  {"type":"Punctuation","value":"("},
+  {"type":"LiteralString","value":"\"not yet implemented\""},
+  {"type":"Punctuation","value":")"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"isValidUtf8"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"data"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Array"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"UInt8"},
+  {"type":"Punctuation","value":"])"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Bool"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"KeywordDeclaration","value":"var"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"i"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"0i64"},
+  {"type":"TextWhitespace","value":"\n\n  "},
+  {"type":"Keyword","value":"while"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"i"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u003c"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"data"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"size"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"KeywordDeclaration","value":"let"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"by"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"data"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"i"},
+  {"type":"Punctuation","value":")"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"toInt32"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"KeywordDeclaration","value":"var"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"codepoint"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"0i32"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"KeywordDeclaration","value":"var"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"bytes"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"0i32"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"KeywordDeclaration","value":"var"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"min"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"0i32"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"KeywordDeclaration","value":"var"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"max"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"0i32"},
+  {"type":"TextWhitespace","value":"\n\n    "},
+  {"type":"Keyword","value":"if"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"by"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u0026"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0x80i32"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"=="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"0i32"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Name","value":"bytes"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"0"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Name","value":"i"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"i"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"+"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"1i64"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"else"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Keyword","value":"if"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"by"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Operator","value":"..."},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u0026"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0xC0i32"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"=="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0x80i32"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Keyword","value":"return"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"false"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Operator","value":"..."},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u0026"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0xE0i32"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"=="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0xC0i32"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Name","value":"codepoint"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"by"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u0026"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0x1Fi32"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Name","value":"bytes"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"1"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Name","value":"min"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0x80"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Name","value":"max"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0x7FFi32"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Operator","value":"..."},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u0026"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0xF0i32"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"=="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0xE0i32"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Name","value":"codepoint"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"by"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u0026"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0xFi32"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Name","value":"bytes"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"2i32"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Name","value":"min"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0x800i32"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Name","value":"max"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0xFFFFi32"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Operator","value":"..."},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u0026"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0xF8i32"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"=="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0xF0i32"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Name","value":"codepoint"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"by"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u0026"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0x7i32"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Name","value":"bytes"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"3"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Name","value":"min"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0x10000"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Name","value":"max"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0x10FFFFi32"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n      "},
+  {"type":"Keyword","value":"while"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"bytes"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u003e"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"0i32"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Name","value":"bytes"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"bytes"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"-"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"1i32"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Name","value":"i"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"i"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"+"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"1i64"},
+  {"type":"TextWhitespace","value":"\n\n        "},
+  {"type":"Keyword","value":"if"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"i"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u003e="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"data"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"size"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n          "},
+  {"type":"Keyword","value":"return"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"false"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n        "},
+  {"type":"KeywordDeclaration","value":"let"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"by"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"data"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"i"},
+  {"type":"Punctuation","value":")"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"toInt32"},
+  {"type":"TextWhitespace","value":"\n\n        "},
+  {"type":"Keyword","value":"if"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"by"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u0026"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0xC0i32"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"!="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0x80i32"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n          "},
+  {"type":"Keyword","value":"return"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"false"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n        "},
+  {"type":"Name","value":"codepoint"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"codepoint"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"shiftLeft"},
+  {"type":"Punctuation","value":"("},
+  {"type":"LiteralNumberInteger","value":"6i32"},
+  {"type":"Punctuation","value":")"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"|"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"by"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u0026"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberHex","value":"0x3Fi32"},
+  {"type":"Punctuation","value":")"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n      "},
+  {"type":"Keyword","value":"if"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"codepoint"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u003c"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"min"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"||"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"codepoint"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u003e"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"max"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n        "},
+  {"type":"Keyword","value":"return"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"false"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n      "},
+  {"type":"Name","value":"i"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"i"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"+"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"1i64"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n  "},
+  {"type":"Keyword","value":"return"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"true"},
+  {"type":"TextWhitespace","value":"\n"},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"NameAttribute","value":"@internal"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"unsafeKillRefs"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"T"},
+  {"type":"Punctuation","value":"]("},
+  {"type":"Name","value":"arr"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Array"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"T"},
+  {"type":"Punctuation","value":"]"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"idx"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Int64"},
+  {"type":"Punctuation","value":")"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Unit"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"class"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Stacktrace"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"Name","value":"backtrace"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Option"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"Array"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"Int32"},
+  {"type":"Punctuation","value":"]]"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"Name","value":"elements"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Option"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"Array"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"StacktraceElement"},
+  {"type":"Punctuation","value":"]]"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":"\n"},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"KeywordDeclaration","value":"impl"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Stacktrace"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameAttribute","value":"@static"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"new"},
+  {"type":"Punctuation","value":"()"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Stacktrace"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"KeywordDeclaration","value":"let"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"trace"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Stacktrace"},
+  {"type":"Punctuation","value":"("},
+  {"type":"NameClass","value":"None"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"Array"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"Int32"},
+  {"type":"Punctuation","value":"]]"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"None"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"Array"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"StacktraceElement"},
+  {"type":"Punctuation","value":"]])"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Name","value":"trace"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"retrieveStacktrace"},
+  {"type":"Punctuation","value":"()"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Name","value":"trace"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n  "},
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"getStacktrace"},
+  {"type":"Punctuation","value":"()"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Array"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"StacktraceElement"},
+  {"type":"Punctuation","value":"]"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Keyword","value":"if"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"self"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"elements"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"isSome"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Keyword","value":"return"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"self"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"elements"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"getOrPanic"},
+  {"type":"Punctuation","value":"()"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n    "},
+  {"type":"Keyword","value":"if"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"self"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"backtrace"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"isNone"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"KeywordDeclaration","value":"let"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"elements"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Array"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"StacktraceElement"},
+  {"type":"Punctuation","value":"]"},
+  {"type":"Operator","value":"::"},
+  {"type":"Name","value":"new"},
+  {"type":"Punctuation","value":"()"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"KeywordConstant","value":"self"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"elements"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Some"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"Array"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"StacktraceElement"},
+  {"type":"Punctuation","value":"]]("},
+  {"type":"Name","value":"elements"},
+  {"type":"Punctuation","value":")"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Keyword","value":"return"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"elements"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n    "},
+  {"type":"KeywordDeclaration","value":"let"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"backtraceLength"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"self"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"backtrace"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"getOrPanic"},
+  {"type":"Punctuation","value":"()"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"size"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"KeywordDeclaration","value":"var"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"i"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"0i64"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"KeywordDeclaration","value":"let"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"len"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"backtraceLength"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"/"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"2i64"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"KeywordDeclaration","value":"let"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"elements"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"List"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"StacktraceElement"},
+  {"type":"Punctuation","value":"]"},
+  {"type":"Operator","value":"::"},
+  {"type":"Name","value":"new"},
+  {"type":"Punctuation","value":"()"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Name","value":"elements"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"reserve"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"len"},
+  {"type":"Punctuation","value":")"},
+  {"type":"TextWhitespace","value":"\n\n    "},
+  {"type":"Keyword","value":"while"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"i"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"\u003c"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"len"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Name","value":"elements"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"push"},
+  {"type":"Punctuation","value":"("},
+  {"type":"KeywordConstant","value":"self"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"getStacktraceElement"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"i"},
+  {"type":"Punctuation","value":"))"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Name","value":"i"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"i"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"+"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"1i64"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n    "},
+  {"type":"KeywordDeclaration","value":"let"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"elements"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"elements"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"toArray"},
+  {"type":"Punctuation","value":"()"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"KeywordConstant","value":"self"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"elements"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Some"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"elements"},
+  {"type":"Punctuation","value":")"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Keyword","value":"return"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"elements"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n  "},
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"printStacktrace"},
+  {"type":"Punctuation","value":"()"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Unit"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"KeywordDeclaration","value":"let"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"x"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"self"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"getStacktrace"},
+  {"type":"Punctuation","value":"()"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"KeywordDeclaration","value":"var"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"i"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralNumberInteger","value":"0i64"},
+  {"type":"TextWhitespace","value":"\n\n    "},
+  {"type":"Keyword","value":"for"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"frame"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"in"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"self"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"getStacktrace"},
+  {"type":"Punctuation","value":"()"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n      "},
+  {"type":"Name","value":"println"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"frame"},
+  {"type":"Operator","value":"."},
+  {"type":"Name","value":"toString"},
+  {"type":"Punctuation","value":"())"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n  "},
+  {"type":"NameAttribute","value":"@internal"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"retrieveStacktrace"},
+  {"type":"Punctuation","value":"()"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Unit"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"NameAttribute","value":"@internal"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"getStacktraceElement"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"idx"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Int64"},
+  {"type":"Punctuation","value":")"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"StacktraceElement"},
+  {"type":"TextWhitespace","value":"\n"},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"KeywordDeclaration","value":"class"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"StacktraceElement"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"Name","value":"name"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"String"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"Name","value":"line"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Int32"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":"\n"},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"KeywordDeclaration","value":"impl"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"StacktraceElement"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"toString"},
+  {"type":"Punctuation","value":"()"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"String"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"LiteralString","value":"\"${self.name}: ${self.line}\""},
+  {"type":"TextWhitespace","value":"\n"},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"Operator","value":"/*"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"total"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"order"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"*/"},
+  {"type":"TextWhitespace","value":"\n"},
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"trait"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Sortable"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"sortsAs"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"other"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Self"},
+  {"type":"Punctuation","value":")"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Int32"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"CommentSingle","value":"// ideally we would be able to provide a default implementation for the next 3 methods based on `sortsAs`\n"},
+  {"type":"TextWhitespace","value":"  "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"sortsBefore"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"other"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Self"},
+  {"type":"Punctuation","value":")"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Bool"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"sortsAfter"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"other"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Self"},
+  {"type":"Punctuation","value":")"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Bool"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"sortsSame"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"other"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Self"},
+  {"type":"Punctuation","value":")"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Bool"},
+  {"type":"TextWhitespace","value":"\n"},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"enum"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Option"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"T"},
+  {"type":"Punctuation","value":"]"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"NameClass","value":"Some"},
+  {"type":"Punctuation","value":"("},
+  {"type":"NameClass","value":"T"},
+  {"type":"Punctuation","value":")"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"NameClass","value":"None"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":"\n"},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"KeywordNamespace","value":"use"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Option"},
+  {"type":"Operator","value":"."},
+  {"type":"NameClass","value":"Some"},
+  {"type":"TextWhitespace","value":"\n"},
+  {"type":"KeywordNamespace","value":"use"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Option"},
+  {"type":"Operator","value":"."},
+  {"type":"NameClass","value":"None"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"KeywordDeclaration","value":"impl"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"T"},
+  {"type":"Punctuation","value":"]"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Option"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"T"},
+  {"type":"Punctuation","value":"]"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"isNone"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Bool"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"if"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"self"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Operator","value":"..."},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"is"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Some"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"_"},
+  {"type":"Punctuation","value":")"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"false"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Operator","value":"..."},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"is"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"None"},
+  {"type":"TextWhitespace","value":"    "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"true"},
+  {"type":"TextWhitespace","value":"  "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n  "},
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"isSome"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Bool"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"if"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"self"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Operator","value":"..."},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"is"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Some"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"_"},
+  {"type":"Punctuation","value":")"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"true"},
+  {"type":"TextWhitespace","value":"  "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Operator","value":"..."},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"is"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"None"},
+  {"type":"TextWhitespace","value":"    "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"false"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n"},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"KeywordDeclaration","value":"impl"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"T"},
+  {"type":"Punctuation","value":"]"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Option"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"Option"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"T"},
+  {"type":"Punctuation","value":"]]"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"CommentSingle","value":"// WTF -- removing `()` causes memory corruption in main (tests/stdlib/option-flatten.core:6) -- WTF\n"},
+  {"type":"TextWhitespace","value":"  "},
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"flatten"},
+  {"type":"Punctuation","value":"()"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Option"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"T"},
+  {"type":"Punctuation","value":"]"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"if"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"self"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Operator","value":"..."},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"is"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Some"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"val"},
+  {"type":"Punctuation","value":")"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"val"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Operator","value":"..."},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"is"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"None"},
+  {"type":"TextWhitespace","value":"      "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"None"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"T"},
+  {"type":"Punctuation","value":"]"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n"},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"enum"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Result"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"T"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"E"},
+  {"type":"Punctuation","value":"]"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"NameClass","value":"Pass"},
+  {"type":"Punctuation","value":"("},
+  {"type":"NameClass","value":"T"},
+  {"type":"Punctuation","value":")"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"NameClass","value":"Fail"},
+  {"type":"Punctuation","value":"("},
+  {"type":"NameClass","value":"E"},
+  {"type":"Punctuation","value":")"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":"\n"},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"KeywordNamespace","value":"use"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Result"},
+  {"type":"Operator","value":"."},
+  {"type":"NameClass","value":"Pass"},
+  {"type":"TextWhitespace","value":"\n"},
+  {"type":"KeywordNamespace","value":"use"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Result"},
+  {"type":"Operator","value":"."},
+  {"type":"NameClass","value":"Fail"},
+  {"type":"TextWhitespace","value":"\n\n"},
+  {"type":"KeywordDeclaration","value":"impl"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"T"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"E"},
+  {"type":"Punctuation","value":"]"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Result"},
+  {"type":"Punctuation","value":"["},
+  {"type":"NameClass","value":"T"},
+  {"type":"Operator","value":","},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"E"},
+  {"type":"Punctuation","value":"]"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":"\n  "},
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"isPass"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Bool"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"if"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"self"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Operator","value":"..."},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"is"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Pass"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"_"},
+  {"type":"Punctuation","value":")"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"true"},
+  {"type":"TextWhitespace","value":"  "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Operator","value":"..."},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"is"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Fail"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"_"},
+  {"type":"Punctuation","value":")"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"false"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n\n  "},
+  {"type":"NameAttribute","value":"@pub"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordDeclaration","value":"fun"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Name","value":"isFail"},
+  {"type":"Operator","value":":"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Bool"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Operator","value":"="},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"if"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"self"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Operator","value":"..."},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"is"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Pass"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"_"},
+  {"type":"Punctuation","value":")"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"false"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n    "},
+  {"type":"Operator","value":"..."},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Keyword","value":"is"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"NameClass","value":"Fail"},
+  {"type":"Punctuation","value":"("},
+  {"type":"Name","value":"_"},
+  {"type":"Punctuation","value":")"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"Punctuation","value":"{"},
+  {"type":"TextWhitespace","value":" "},
+  {"type":"KeywordConstant","value":"true"},
+  {"type":"TextWhitespace","value":"  "},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n"},
+  {"type":"Punctuation","value":"}"},
+  {"type":"TextWhitespace","value":"\n"}
+]