SOURCE "@pkg.value"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(0, 10)
  Some("expr") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(0, 10)
    Some("name") Syntax_Token("PACKAGE_NAME") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
      Some("name_value") Name_Package loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
        Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
      Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
    Some("name") Syntax_Token("DOT_LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
      Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
        Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
      Some("accessor") Accessor_Label loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
        Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
      Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
    Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(0, 10)
      Some("long_ident") LongIdent_Dot loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(0, 10)
        Some("component") Name_Package loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
          Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
        Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
          Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(10, 10)
[]
SOURCE "@pkg.Type::make"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(0, 15)
  Some("expr") Expr_Method loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(0, 15)
    Some("type") Expr_Constr loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(0, 9)
      Some("name") Syntax_Token("PACKAGE_NAME") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
        Some("name_value") Name_Package loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
          Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
        Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
      Some("name") Syntax_Token("DOT_UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
        Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
          Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
        Some("accessor") Accessor_Label loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
          Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
        Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
      Some("semantic_name") Name_Constructor loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(0, 9)
        Some("long_ident") LongIdent_Dot loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(0, 9)
          Some("component") Name_Package loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
            Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
          Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
            Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
      Some("constructor_extra_info") ConstructorExtraInfo_Package loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(9, 9)
    Some("op") Syntax_Token("::") loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(9, 11)
    Some("field") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(11, 15)
      Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(11, 15)
        Some("payload") Leaf(String("make")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(11, 15)
      Some("payload") Leaf(String("make")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(11, 15)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(15, 15)
[]
SOURCE "@pkg.Type::Case(x~, y?=value)"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(0, 29)
  Some("expr") Expr_Apply loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(0, 29)
    Some("func") Expr_Constr loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(0, 15)
      Some("type") Expr_Constr loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(0, 9)
        Some("name") Syntax_Token("PACKAGE_NAME") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
          Some("name_value") Name_Package loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
            Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
          Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
        Some("name") Syntax_Token("DOT_UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
            Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
          Some("accessor") Accessor_Label loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
            Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
          Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
        Some("semantic_name") Name_Constructor loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(0, 9)
          Some("long_ident") LongIdent_Dot loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(0, 9)
            Some("component") Name_Package loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
              Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
              Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(5, 9)
        Some("constructor_extra_info") ConstructorExtraInfo_Package loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(9, 9)
      Some("op") Syntax_Token("::") loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(9, 11)
      Some("field") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(11, 15)
        Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(11, 15)
          Some("payload") Leaf(String("Case")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(11, 15)
        Some("payload") Leaf(String("Case")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(11, 15)
      Some("semantic_name") Name_Constructor loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(11, 15)
        Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(11, 15)
          Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(11, 15)
            Some("payload") Leaf(String("Case")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(11, 15)
      Some("constructor_extra_info") ConstructorExtraInfo_TypeName loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(15, 15)
    Some("arg") List_ArgumentList loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(15, 29)
      Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
      Some("item") Argument_LabelledPun loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(16, 18)
        Some("name") Syntax_Token("POST_LABEL") loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(16, 18)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
          Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(16, 18)
        Some("semantic_name") Name_Label loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(16, 18)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(16, 18)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
              Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
        Some("pun") Flag_Pun loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(18, 18)
          Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(18, 18)
        Some("expr") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
          Some("name") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
          Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
                Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
      Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(18, 19)
        Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(18, 18)
      Some("item") Argument_LabelledOption loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(20, 28)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
            Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
          Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
        Some("op") Syntax_Token("?") loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
            Some("payload") Leaf(String("?")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
        Some("op") Syntax_Token("=") loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
            Some("payload") Leaf(String("=")) loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
        Some("expr") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(23, 28)
          Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(23, 28)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(23, 28)
              Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(23, 28)
            Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(23, 28)
          Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(23, 28)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(23, 28)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(23, 28)
                Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(23, 28)
        Some("semantic_name") Name_Label loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
              Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
        Some("pun") Flag_Pun loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(28, 28)
          Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(28, 28)
      Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(29, 29)
[]
SOURCE "(+1, -2, -3L, +4.5, -6.5, - -7)"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(0, 31)
  Some("expr") Expr_Tuple loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(0, 31)
    Some("body") List_TupleElementList loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(0, 31)
      Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
      Some("item") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(1, 3)
        Some("op") Syntax_Token("+") loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
            Some("payload") Leaf(String("+")) loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
        Some("operator") Operator_UnaryPlus loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
          Some("payload") Leaf(String("+")) loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
        Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
          Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
            Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
          Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
        Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
          Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
        Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
          Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
      Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(3, 4)
        Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(3, 3)
      Some("item") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(5, 7)
        Some("op") Syntax_Token("-") loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
            Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
        Some("operator") Operator_UnaryMinus loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
          Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
        Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
          Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
            Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
          Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
        Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
          Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
        Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(5, 7)
          Some("payload") Leaf(String("-2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(5, 7)
      Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
        Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(7, 7)
      Some("item") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(9, 12)
        Some("op") Syntax_Token("-") loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
            Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
        Some("operator") Operator_UnaryMinus loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
          Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
        Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(10, 12)
          Some("constant") Constant_Int64 loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(10, 12)
            Some("payload") Leaf(String("3")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(10, 12)
          Some("payload") Leaf(String("3L")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(10, 12)
        Some("constant") Constant_Int64 loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(10, 12)
          Some("payload") Leaf(String("3")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(10, 12)
        Some("semantic_constant") Constant_Int64 loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(9, 12)
          Some("payload") Leaf(String("-3")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(9, 12)
      Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
        Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(12, 12)
      Some("item") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(14, 18)
        Some("op") Syntax_Token("+") loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
            Some("payload") Leaf(String("+")) loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
        Some("operator") Operator_UnaryPlus loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
          Some("payload") Leaf(String("+")) loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
        Some("token") Syntax_Token("DOUBLE") loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(15, 18)
          Some("constant") Constant_Double loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(15, 18)
            Some("payload") Leaf(String("4.5")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(15, 18)
          Some("payload") Leaf(String("4.5")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(15, 18)
        Some("constant") Constant_Double loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(15, 18)
          Some("payload") Leaf(String("4.5")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(15, 18)
        Some("semantic_constant") Constant_Double loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(15, 18)
          Some("payload") Leaf(String("4.5")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(15, 18)
      Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(18, 19)
        Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(18, 18)
      Some("item") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(20, 24)
        Some("op") Syntax_Token("-") loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
            Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
        Some("operator") Operator_UnaryMinus loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
          Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
        Some("token") Syntax_Token("DOUBLE") loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(21, 24)
          Some("constant") Constant_Double loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(21, 24)
            Some("payload") Leaf(String("6.5")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(21, 24)
          Some("payload") Leaf(String("6.5")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(21, 24)
        Some("constant") Constant_Double loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(21, 24)
          Some("payload") Leaf(String("6.5")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(21, 24)
        Some("semantic_constant") Constant_Double loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(20, 24)
          Some("payload") Leaf(String("-6.5")) loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(20, 24)
      Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(24, 25)
        Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(24, 24)
      Some("item") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(26, 30)
        Some("op") Syntax_Token("-") loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
            Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
        Some("operator") Operator_UnaryMinus loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
          Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
        Some("op") Syntax_Token("-") loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
            Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
        Some("operator") Operator_UnaryMinus loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
          Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
        Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(29, 30)
          Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(29, 30)
            Some("payload") Leaf(String("7")) loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(29, 30)
          Some("payload") Leaf(String("7")) loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(29, 30)
        Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(29, 30)
          Some("payload") Leaf(String("7")) loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(29, 30)
        Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(26, 30)
          Some("payload") Leaf(String("7")) loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(26, 30)
      Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(30, 31)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(31, 31)
[]
SOURCE "f(x~, y?, z=value, w?=value)"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(0, 28)
  Some("expr") Expr_Apply loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(0, 28)
    Some("func") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
      Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
        Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
          Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
        Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
      Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
        Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
          Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
            Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
    Some("arg") List_ArgumentList loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(1, 28)
      Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
      Some("item") Argument_LabelledPun loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(2, 4)
        Some("name") Syntax_Token("POST_LABEL") loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(2, 4)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
          Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(2, 4)
        Some("semantic_name") Name_Label loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(2, 4)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(2, 4)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
              Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
        Some("pun") Flag_Pun loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(4, 4)
          Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(4, 4)
        Some("expr") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
          Some("name") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
          Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
                Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
      Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
        Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(4, 4)
      Some("item") Argument_LabelledOptionPun loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(6, 8)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
            Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
          Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
        Some("op") Syntax_Token("?") loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
            Some("payload") Leaf(String("?")) loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
        Some("semantic_name") Name_Label loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
              Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
        Some("pun") Flag_Pun loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(8, 8)
          Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(8, 8)
        Some("expr") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
          Some("name") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
            Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
          Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
                Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
      Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
        Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(8, 8)
      Some("item") Argument_Labelled loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(10, 17)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
            Some("payload") Leaf(String("z")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
          Some("payload") Leaf(String("z")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
        Some("op") Syntax_Token("=") loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
            Some("payload") Leaf(String("=")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
        Some("expr") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(12, 17)
          Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(12, 17)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(12, 17)
              Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(12, 17)
            Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(12, 17)
          Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(12, 17)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(12, 17)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(12, 17)
                Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(12, 17)
        Some("semantic_name") Name_Label loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
              Some("payload") Leaf(String("z")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
        Some("pun") Flag_Pun loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 17)
          Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 17)
      Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
        Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 17)
      Some("item") Argument_LabelledOption loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(19, 27)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
            Some("payload") Leaf(String("w")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
          Some("payload") Leaf(String("w")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
        Some("op") Syntax_Token("?") loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
            Some("payload") Leaf(String("?")) loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
        Some("op") Syntax_Token("=") loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
            Some("payload") Leaf(String("=")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
        Some("expr") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(22, 27)
          Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(22, 27)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(22, 27)
              Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(22, 27)
            Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(22, 27)
          Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(22, 27)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(22, 27)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(22, 27)
                Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(22, 27)
        Some("semantic_name") Name_Label loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
              Some("payload") Leaf(String("w")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
        Some("pun") Flag_Pun loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(27, 27)
          Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(27, 27)
      Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(27, 28)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(28, 28)
[]
SOURCE "{ x, y: value }"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(0, 15)
  Some("expr") Expr_Record loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(0, 15)
    Some("body") List_RecordFieldList loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(0, 15)
      Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
      Some("item") Field_Definition loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
          Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
        Some("semantic_name") Name_Field loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
              Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
        Some("pun") Flag_Pun loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(3, 3)
          Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(3, 3)
        Some("expr") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
          Some("name") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
          Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
                Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
      Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(3, 4)
        Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(3, 3)
      Some("item") Field_Definition loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(5, 13)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
            Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
          Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
        Some("op") Syntax_Token(":") loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
        Some("expr") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(8, 13)
          Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(8, 13)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(8, 13)
              Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(8, 13)
            Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(8, 13)
          Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(8, 13)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(8, 13)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(8, 13)
                Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(8, 13)
        Some("semantic_name") Name_Field loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
              Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
        Some("pun") Flag_Pun loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(13, 13)
          Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(13, 13)
      Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
      Some("trailing") TrailingMark_None loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(15, 15)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(15, 15)
[]
SOURCE "{ \"🐇\": -1, \"b\": 2 }"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(0, 20)
  Some("expr") Expr_Map loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(0, 20)
    Some("body") List_MapFieldList loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(0, 20)
      Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
      Some("item") Field_MapExpression loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(2, 10)
        Some("key") Syntax_Token("STRING") loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(2, 6)
          Some("constant") Constant_String loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(2, 6)
            Some("payload") Leaf(String("🐇")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(2, 6)
          Some("payload") Leaf(String("🐇")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(2, 6)
        Some("constant") Constant_String loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(2, 6)
          Some("payload") Leaf(String("🐇")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(2, 6)
        Some("op") Syntax_Token(":") loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(6, 7)
        Some("expr") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 10)
          Some("op") Syntax_Token("-") loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(8, 9)
            Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(8, 9)
              Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(8, 9)
          Some("operator") Operator_UnaryMinus loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(8, 9)
            Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(8, 9)
          Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(9, 10)
            Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(9, 10)
              Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(9, 10)
            Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(9, 10)
          Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(9, 10)
            Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(9, 10)
          Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 10)
            Some("payload") Leaf(String("-1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 10)
        Some("semantic_constant") Constant_String loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(2, 6)
          Some("payload") Leaf(String("🐇")) loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(2, 6)
      Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(10, 11)
        Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(10, 10)
      Some("item") Field_MapExpression loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(12, 18)
        Some("key") Syntax_Token("STRING") loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(12, 15)
          Some("constant") Constant_String loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(12, 15)
            Some("payload") Leaf(String("b")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(12, 15)
          Some("payload") Leaf(String("b")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(12, 15)
        Some("constant") Constant_String loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(12, 15)
          Some("payload") Leaf(String("b")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(12, 15)
        Some("op") Syntax_Token(":") loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(15, 16)
        Some("expr") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 18)
          Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 18)
            Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 18)
              Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 18)
            Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 18)
          Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 18)
            Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 18)
          Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 18)
            Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 18)
        Some("semantic_constant") Constant_String loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(12, 15)
          Some("payload") Leaf(String("b")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(12, 15)
      Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(19, 20)
      Some("trailing") TrailingMark_None loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(20, 20)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(20, 20)
[]
SOURCE "match x { Case(value~) => value; { a, b: value, .. } => value; { \"k\": value, .. } => value }"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 92 } span=(0, 92)
  Some("expr") Expr_Match loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 92 } span=(0, 92)
    Some("kw") Syntax_Token("match") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(0, 5)
    Some("expr") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
      Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
        Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
          Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
        Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
      Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
        Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
          Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
    Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
    Some("case") Case_MatchCase loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(10, 31)
      Some("pattern") Pattern_Constr loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(10, 22)
        Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(10, 14)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(10, 14)
            Some("payload") Leaf(String("Case")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(10, 14)
          Some("payload") Leaf(String("Case")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(10, 14)
        Some("params") List_ConstructorPatternArgumentList loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(14, 22)
          Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
          Some("item") Argument_LabelledPun loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(15, 21)
            Some("name") Syntax_Token("POST_LABEL") loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(15, 21)
              Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(15, 20)
                Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(15, 20)
              Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(15, 21)
            Some("semantic_name") Name_Label loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(15, 21)
              Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(15, 21)
                Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(15, 20)
                  Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(15, 20)
            Some("pun") Flag_Pun loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(21, 21)
              Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(21, 21)
            Some("pattern") Pattern_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(15, 20)
              Some("name") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(15, 20)
                Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(15, 20)
              Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(15, 20)
                Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(15, 20)
                  Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(15, 20)
                    Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(15, 20)
          Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
        Some("semantic_name") Name_Constructor loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(10, 14)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(10, 14)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(10, 14)
              Some("payload") Leaf(String("Case")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(10, 14)
        Some("constructor_extra_info") ConstructorExtraInfo_None loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(22, 22)
        Some("openness") Openness_Closed loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(22, 22)
      Some("op") Syntax_Token("=>") loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(23, 25)
      Some("body") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(26, 31)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(26, 31)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(26, 31)
            Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(26, 31)
          Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(26, 31)
        Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(26, 31)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(26, 31)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(26, 31)
              Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(26, 31)
    Some("sep") Syntax_Token("SEMI") loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 32 } span=(31, 32)
      Some("trailing") TrailingMark_Semi loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(31, 31)
      Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 32 } span=(31, 32)
    Some("case") Case_MatchCase loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 61 } span=(33, 61)
      Some("pattern") Pattern_Record loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(33, 52)
        Some("body") List_RecordPatternFieldList loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(33, 52)
          Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(33, 34)
          Some("item") Field_Pattern loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
            Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
              Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
                Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
              Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
            Some("semantic_name") Name_Field loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
              Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
                Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
                  Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
            Some("pun") Flag_Pun loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(36, 36)
              Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(36, 36)
            Some("pattern") Pattern_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
              Some("name") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
                Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
              Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
                Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
                  Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
                    Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
          Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(36, 37)
            Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(36, 36)
          Some("item") Field_Pattern loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 46 } span=(38, 46)
            Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
              Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
                Some("payload") Leaf(String("b")) loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
              Some("payload") Leaf(String("b")) loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
            Some("op") Syntax_Token(":") loc={ fname: "", lnum: 1, bol: 0, cnum: 39 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(39, 40)
            Some("pattern") Pattern_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 46 } span=(41, 46)
              Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 46 } span=(41, 46)
                Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 46 } span=(41, 46)
                  Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 46 } span=(41, 46)
                Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 46 } span=(41, 46)
              Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 46 } span=(41, 46)
                Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 46 } span=(41, 46)
                  Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 46 } span=(41, 46)
                    Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 46 } span=(41, 46)
            Some("semantic_name") Name_Field loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
              Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
                Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
                  Some("payload") Leaf(String("b")) loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
            Some("pun") Flag_Pun loc={ fname: "", lnum: 1, bol: 0, cnum: 46 },{ fname: "", lnum: 1, bol: 0, cnum: 46 } span=(46, 46)
              Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 46 },{ fname: "", lnum: 1, bol: 0, cnum: 46 } span=(46, 46)
          Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 46 },{ fname: "", lnum: 1, bol: 0, cnum: 47 } span=(46, 47)
            Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 46 },{ fname: "", lnum: 1, bol: 0, cnum: 46 } span=(46, 46)
          Some("item") Pattern_Rest loc={ fname: "", lnum: 1, bol: 0, cnum: 48 },{ fname: "", lnum: 1, bol: 0, cnum: 50 } span=(48, 50)
            Some("op") Syntax_Token("..") loc={ fname: "", lnum: 1, bol: 0, cnum: 48 },{ fname: "", lnum: 1, bol: 0, cnum: 50 } span=(48, 50)
              Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 48 },{ fname: "", lnum: 1, bol: 0, cnum: 50 } span=(48, 50)
                Some("payload") Leaf(String("..")) loc={ fname: "", lnum: 1, bol: 0, cnum: 48 },{ fname: "", lnum: 1, bol: 0, cnum: 50 } span=(48, 50)
          Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 51 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(51, 52)
        Some("openness") Openness_Open loc={ fname: "", lnum: 1, bol: 0, cnum: 52 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(52, 52)
      Some("op") Syntax_Token("=>") loc={ fname: "", lnum: 1, bol: 0, cnum: 53 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(53, 55)
      Some("body") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 61 } span=(56, 61)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 61 } span=(56, 61)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 61 } span=(56, 61)
            Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 61 } span=(56, 61)
          Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 61 } span=(56, 61)
        Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 61 } span=(56, 61)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 61 } span=(56, 61)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 61 } span=(56, 61)
              Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 61 } span=(56, 61)
    Some("sep") Syntax_Token("SEMI") loc={ fname: "", lnum: 1, bol: 0, cnum: 61 },{ fname: "", lnum: 1, bol: 0, cnum: 62 } span=(61, 62)
      Some("trailing") TrailingMark_Semi loc={ fname: "", lnum: 1, bol: 0, cnum: 61 },{ fname: "", lnum: 1, bol: 0, cnum: 61 } span=(61, 61)
      Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 61 },{ fname: "", lnum: 1, bol: 0, cnum: 62 } span=(61, 62)
    Some("case") Case_MatchCase loc={ fname: "", lnum: 1, bol: 0, cnum: 63 },{ fname: "", lnum: 1, bol: 0, cnum: 90 } span=(63, 90)
      Some("pattern") Pattern_Map loc={ fname: "", lnum: 1, bol: 0, cnum: 63 },{ fname: "", lnum: 1, bol: 0, cnum: 81 } span=(63, 81)
        Some("body") List_MapPatternFieldList loc={ fname: "", lnum: 1, bol: 0, cnum: 63 },{ fname: "", lnum: 1, bol: 0, cnum: 81 } span=(63, 81)
          Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 63 },{ fname: "", lnum: 1, bol: 0, cnum: 64 } span=(63, 64)
          Some("item") Field_MapPattern loc={ fname: "", lnum: 1, bol: 0, cnum: 65 },{ fname: "", lnum: 1, bol: 0, cnum: 75 } span=(65, 75)
            Some("key") Syntax_Token("STRING") loc={ fname: "", lnum: 1, bol: 0, cnum: 65 },{ fname: "", lnum: 1, bol: 0, cnum: 68 } span=(65, 68)
              Some("constant") Constant_String loc={ fname: "", lnum: 1, bol: 0, cnum: 65 },{ fname: "", lnum: 1, bol: 0, cnum: 68 } span=(65, 68)
                Some("payload") Leaf(String("k")) loc={ fname: "", lnum: 1, bol: 0, cnum: 65 },{ fname: "", lnum: 1, bol: 0, cnum: 68 } span=(65, 68)
              Some("payload") Leaf(String("k")) loc={ fname: "", lnum: 1, bol: 0, cnum: 65 },{ fname: "", lnum: 1, bol: 0, cnum: 68 } span=(65, 68)
            Some("constant") Constant_String loc={ fname: "", lnum: 1, bol: 0, cnum: 65 },{ fname: "", lnum: 1, bol: 0, cnum: 68 } span=(65, 68)
              Some("payload") Leaf(String("k")) loc={ fname: "", lnum: 1, bol: 0, cnum: 65 },{ fname: "", lnum: 1, bol: 0, cnum: 68 } span=(65, 68)
            Some("op") Syntax_Token(":") loc={ fname: "", lnum: 1, bol: 0, cnum: 68 },{ fname: "", lnum: 1, bol: 0, cnum: 69 } span=(68, 69)
            Some("pattern") Pattern_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 70 },{ fname: "", lnum: 1, bol: 0, cnum: 75 } span=(70, 75)
              Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 70 },{ fname: "", lnum: 1, bol: 0, cnum: 75 } span=(70, 75)
                Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 70 },{ fname: "", lnum: 1, bol: 0, cnum: 75 } span=(70, 75)
                  Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 70 },{ fname: "", lnum: 1, bol: 0, cnum: 75 } span=(70, 75)
                Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 70 },{ fname: "", lnum: 1, bol: 0, cnum: 75 } span=(70, 75)
              Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 70 },{ fname: "", lnum: 1, bol: 0, cnum: 75 } span=(70, 75)
                Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 70 },{ fname: "", lnum: 1, bol: 0, cnum: 75 } span=(70, 75)
                  Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 70 },{ fname: "", lnum: 1, bol: 0, cnum: 75 } span=(70, 75)
                    Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 70 },{ fname: "", lnum: 1, bol: 0, cnum: 75 } span=(70, 75)
            Some("semantic_constant") Constant_String loc={ fname: "", lnum: 1, bol: 0, cnum: 65 },{ fname: "", lnum: 1, bol: 0, cnum: 68 } span=(65, 68)
              Some("payload") Leaf(String("k")) loc={ fname: "", lnum: 1, bol: 0, cnum: 65 },{ fname: "", lnum: 1, bol: 0, cnum: 68 } span=(65, 68)
            Some("match_absent") Flag_MatchAbsent loc={ fname: "", lnum: 1, bol: 0, cnum: 75 },{ fname: "", lnum: 1, bol: 0, cnum: 75 } span=(75, 75)
              Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 75 },{ fname: "", lnum: 1, bol: 0, cnum: 75 } span=(75, 75)
          Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 75 },{ fname: "", lnum: 1, bol: 0, cnum: 76 } span=(75, 76)
            Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 75 },{ fname: "", lnum: 1, bol: 0, cnum: 75 } span=(75, 75)
          Some("item") Pattern_Rest loc={ fname: "", lnum: 1, bol: 0, cnum: 77 },{ fname: "", lnum: 1, bol: 0, cnum: 79 } span=(77, 79)
            Some("op") Syntax_Token("..") loc={ fname: "", lnum: 1, bol: 0, cnum: 77 },{ fname: "", lnum: 1, bol: 0, cnum: 79 } span=(77, 79)
              Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 77 },{ fname: "", lnum: 1, bol: 0, cnum: 79 } span=(77, 79)
                Some("payload") Leaf(String("..")) loc={ fname: "", lnum: 1, bol: 0, cnum: 77 },{ fname: "", lnum: 1, bol: 0, cnum: 79 } span=(77, 79)
          Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 80 },{ fname: "", lnum: 1, bol: 0, cnum: 81 } span=(80, 81)
        Some("openness") Openness_Open loc={ fname: "", lnum: 1, bol: 0, cnum: 81 },{ fname: "", lnum: 1, bol: 0, cnum: 81 } span=(81, 81)
      Some("op") Syntax_Token("=>") loc={ fname: "", lnum: 1, bol: 0, cnum: 82 },{ fname: "", lnum: 1, bol: 0, cnum: 84 } span=(82, 84)
      Some("body") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 85 },{ fname: "", lnum: 1, bol: 0, cnum: 90 } span=(85, 90)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 85 },{ fname: "", lnum: 1, bol: 0, cnum: 90 } span=(85, 90)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 85 },{ fname: "", lnum: 1, bol: 0, cnum: 90 } span=(85, 90)
            Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 85 },{ fname: "", lnum: 1, bol: 0, cnum: 90 } span=(85, 90)
          Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 85 },{ fname: "", lnum: 1, bol: 0, cnum: 90 } span=(85, 90)
        Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 85 },{ fname: "", lnum: 1, bol: 0, cnum: 90 } span=(85, 90)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 85 },{ fname: "", lnum: 1, bol: 0, cnum: 90 } span=(85, 90)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 85 },{ fname: "", lnum: 1, bol: 0, cnum: 90 } span=(85, 90)
              Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 1, bol: 0, cnum: 85 },{ fname: "", lnum: 1, bol: 0, cnum: 90 } span=(85, 90)
    Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 91 },{ fname: "", lnum: 1, bol: 0, cnum: 92 } span=(91, 92)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 92 },{ fname: "", lnum: 1, bol: 0, cnum: 92 } span=(92, 92)
[]
SOURCE "match x { -1 => 0; -2L => 1; -3.5 => 2; @pkg.Type::Case(x~) => x }"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 66 } span=(0, 66)
  Some("expr") Expr_Match loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 66 } span=(0, 66)
    Some("kw") Syntax_Token("match") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(0, 5)
    Some("expr") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
      Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
        Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
          Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
        Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
      Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
        Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
          Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
    Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
    Some("case") Case_MatchCase loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(10, 17)
      Some("pattern") Pattern_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(10, 12)
        Some("op") Syntax_Token("-") loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
            Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
        Some("operator") Operator_UnaryMinus loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
          Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
        Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
          Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
            Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
          Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
        Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
          Some("payload") Leaf(String("-1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
        Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
          Some("payload") Leaf(String("-1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
      Some("op") Syntax_Token("=>") loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(13, 15)
      Some("body") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
        Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
          Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
            Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
          Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
        Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
          Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
        Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
          Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
    Some("sep") Syntax_Token("SEMI") loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
      Some("trailing") TrailingMark_Semi loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 17)
      Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
    Some("case") Case_MatchCase loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(19, 27)
      Some("pattern") Pattern_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
        Some("op") Syntax_Token("-") loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
            Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
        Some("operator") Operator_UnaryMinus loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
          Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
        Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(20, 22)
          Some("constant") Constant_Int64 loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(20, 22)
            Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(20, 22)
          Some("payload") Leaf(String("2L")) loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(20, 22)
        Some("constant") Constant_Int64 loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(20, 22)
          Some("payload") Leaf(String("-2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(20, 22)
        Some("semantic_constant") Constant_Int64 loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(20, 22)
          Some("payload") Leaf(String("-2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(20, 22)
      Some("op") Syntax_Token("=>") loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(23, 25)
      Some("body") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
        Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
          Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
            Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
          Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
        Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
          Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
        Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
          Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
    Some("sep") Syntax_Token("SEMI") loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(27, 28)
      Some("trailing") TrailingMark_Semi loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(27, 27)
      Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(27, 28)
    Some("case") Case_MatchCase loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(29, 38)
      Some("pattern") Pattern_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(29, 33)
        Some("op") Syntax_Token("-") loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(29, 30)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(29, 30)
            Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(29, 30)
        Some("operator") Operator_UnaryMinus loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(29, 30)
          Some("payload") Leaf(String("-")) loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(29, 30)
        Some("token") Syntax_Token("DOUBLE") loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
          Some("constant") Constant_Double loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
            Some("payload") Leaf(String("3.5")) loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
          Some("payload") Leaf(String("3.5")) loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
        Some("constant") Constant_Double loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
          Some("payload") Leaf(String("-3.5")) loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
        Some("semantic_constant") Constant_Double loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
          Some("payload") Leaf(String("-3.5")) loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
      Some("op") Syntax_Token("=>") loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(34, 36)
      Some("body") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
        Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
          Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
            Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
          Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
        Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
          Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
        Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
          Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
    Some("sep") Syntax_Token("SEMI") loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
      Some("trailing") TrailingMark_Semi loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(38, 38)
      Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
    Some("case") Case_MatchCase loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 64 } span=(40, 64)
      Some("pattern") Pattern_Constr loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 59 } span=(40, 59)
        Some("name") Syntax_Token("PACKAGE_NAME") loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 44 } span=(40, 44)
          Some("name_value") Name_Package loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 44 } span=(40, 44)
            Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 44 } span=(40, 44)
          Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 44 } span=(40, 44)
        Some("name") Syntax_Token("DOT_UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 45 },{ fname: "", lnum: 1, bol: 0, cnum: 49 } span=(45, 49)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 45 },{ fname: "", lnum: 1, bol: 0, cnum: 49 } span=(45, 49)
            Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 45 },{ fname: "", lnum: 1, bol: 0, cnum: 49 } span=(45, 49)
          Some("accessor") Accessor_Label loc={ fname: "", lnum: 1, bol: 0, cnum: 45 },{ fname: "", lnum: 1, bol: 0, cnum: 49 } span=(45, 49)
            Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 45 },{ fname: "", lnum: 1, bol: 0, cnum: 49 } span=(45, 49)
          Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 45 },{ fname: "", lnum: 1, bol: 0, cnum: 49 } span=(45, 49)
        Some("op") Syntax_Token("::") loc={ fname: "", lnum: 1, bol: 0, cnum: 49 },{ fname: "", lnum: 1, bol: 0, cnum: 51 } span=(49, 51)
        Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 51 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(51, 55)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 51 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(51, 55)
            Some("payload") Leaf(String("Case")) loc={ fname: "", lnum: 1, bol: 0, cnum: 51 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(51, 55)
          Some("payload") Leaf(String("Case")) loc={ fname: "", lnum: 1, bol: 0, cnum: 51 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(51, 55)
        Some("params") List_ConstructorPatternArgumentList loc={ fname: "", lnum: 1, bol: 0, cnum: 55 },{ fname: "", lnum: 1, bol: 0, cnum: 59 } span=(55, 59)
          Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 55 },{ fname: "", lnum: 1, bol: 0, cnum: 56 } span=(55, 56)
          Some("item") Argument_LabelledPun loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 58 } span=(56, 58)
            Some("name") Syntax_Token("POST_LABEL") loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 58 } span=(56, 58)
              Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 57 } span=(56, 57)
                Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 57 } span=(56, 57)
              Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 58 } span=(56, 58)
            Some("semantic_name") Name_Label loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 58 } span=(56, 58)
              Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 58 } span=(56, 58)
                Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 57 } span=(56, 57)
                  Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 57 } span=(56, 57)
            Some("pun") Flag_Pun loc={ fname: "", lnum: 1, bol: 0, cnum: 58 },{ fname: "", lnum: 1, bol: 0, cnum: 58 } span=(58, 58)
              Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 58 },{ fname: "", lnum: 1, bol: 0, cnum: 58 } span=(58, 58)
            Some("pattern") Pattern_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 57 } span=(56, 57)
              Some("name") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 57 } span=(56, 57)
                Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 57 } span=(56, 57)
              Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 57 } span=(56, 57)
                Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 57 } span=(56, 57)
                  Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 57 } span=(56, 57)
                    Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 56 },{ fname: "", lnum: 1, bol: 0, cnum: 57 } span=(56, 57)
          Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 58 },{ fname: "", lnum: 1, bol: 0, cnum: 59 } span=(58, 59)
        Some("semantic_name") Name_Constructor loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(40, 55)
          Some("long_ident") LongIdent_Dot loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(40, 55)
            Some("component") Name_Package loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 44 } span=(40, 44)
              Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 44 } span=(40, 44)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 45 },{ fname: "", lnum: 1, bol: 0, cnum: 49 } span=(45, 49)
              Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 45 },{ fname: "", lnum: 1, bol: 0, cnum: 49 } span=(45, 49)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 51 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(51, 55)
              Some("payload") Leaf(String("Case")) loc={ fname: "", lnum: 1, bol: 0, cnum: 51 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(51, 55)
        Some("constructor_extra_info") ConstructorExtraInfo_TypeName loc={ fname: "", lnum: 1, bol: 0, cnum: 59 },{ fname: "", lnum: 1, bol: 0, cnum: 59 } span=(59, 59)
        Some("openness") Openness_Closed loc={ fname: "", lnum: 1, bol: 0, cnum: 59 },{ fname: "", lnum: 1, bol: 0, cnum: 59 } span=(59, 59)
      Some("op") Syntax_Token("=>") loc={ fname: "", lnum: 1, bol: 0, cnum: 60 },{ fname: "", lnum: 1, bol: 0, cnum: 62 } span=(60, 62)
      Some("body") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 63 },{ fname: "", lnum: 1, bol: 0, cnum: 64 } span=(63, 64)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 63 },{ fname: "", lnum: 1, bol: 0, cnum: 64 } span=(63, 64)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 63 },{ fname: "", lnum: 1, bol: 0, cnum: 64 } span=(63, 64)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 63 },{ fname: "", lnum: 1, bol: 0, cnum: 64 } span=(63, 64)
          Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 63 },{ fname: "", lnum: 1, bol: 0, cnum: 64 } span=(63, 64)
        Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 63 },{ fname: "", lnum: 1, bol: 0, cnum: 64 } span=(63, 64)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 63 },{ fname: "", lnum: 1, bol: 0, cnum: 64 } span=(63, 64)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 63 },{ fname: "", lnum: 1, bol: 0, cnum: 64 } span=(63, 64)
              Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 63 },{ fname: "", lnum: 1, bol: 0, cnum: 64 } span=(63, 64)
    Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 65 },{ fname: "", lnum: 1, bol: 0, cnum: 66 } span=(65, 66)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 66 },{ fname: "", lnum: 1, bol: 0, cnum: 66 } span=(66, 66)
[]
SOURCE "async fn(x) { x }"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(0, 17)
  Some("expr") Expr_Function loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(0, 17)
    Some("kw") Syntax_Token("async") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(0, 5)
      Some("flag") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 0 } span=(0, 0)
        Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 0 } span=(0, 0)
    Some("kw") Syntax_Token("fn") loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(6, 8)
    Some("params") List_ParameterList loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(8, 11)
      Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
      Some("item") Parameter_Positional loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
        Some("pattern") Pattern_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
          Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
              Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
          Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
                Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
      Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
    Some("body") Expr_Block loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(12, 17)
      Some("body") List_BlockStatementList loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(12, 17)
        Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
        Some("item") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
          Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
              Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
          Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
                Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
        Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
      Some("group") Group_Brace loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 17)
    Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 17)
      Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 17)
    Some("fn_kind") FnKind_Lambda loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 17)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(17, 17)
[]
SOURCE "(x, y) => x"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(0, 11)
  Some("expr") Expr_Function loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(0, 11)
    Some("params") List_ParameterList loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(0, 6)
      Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
      Some("item") Parameter_Positional loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
        Some("pattern") Pattern_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
          Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
              Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
          Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
                Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
      Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
        Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(2, 2)
      Some("item") Parameter_Positional loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
        Some("pattern") Pattern_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
          Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
              Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
            Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
          Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
                Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
      Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
    Some("op") Syntax_Token("=>") loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(7, 9)
    Some("body") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
      Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
        Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
          Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
        Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
      Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
        Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
          Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
    Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(11, 11)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(11, 11)
    Some("fn_kind") FnKind_Arrow loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(11, 11)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(11, 11)
[]
SOURCE "label~: while true { break label~ }"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(0, 35)
  Some("expr") Expr_While loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(0, 35)
    Some("label") Syntax_Token("POST_LABEL") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(0, 6)
      Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(0, 5)
        Some("payload") Leaf(String("label")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(0, 5)
      Some("payload") Leaf(String("label")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(0, 6)
    Some("op") Syntax_Token(":") loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
    Some("kw") Syntax_Token("while") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(8, 13)
    Some("cond") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(14, 18)
      Some("token") Syntax_Token("TRUE") loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(14, 18)
        Some("constant") Constant_Bool loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(14, 18)
          Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(14, 18)
        Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(14, 18)
      Some("constant") Constant_Bool loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(14, 18)
        Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(14, 18)
      Some("semantic_constant") Constant_Bool loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(14, 18)
        Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(14, 18)
    Some("body") Expr_Block loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(19, 35)
      Some("body") List_BlockStatementList loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(19, 35)
        Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
        Some("item") Expr_Break loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(21, 33)
          Some("kw") Syntax_Token("break") loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(21, 26)
          Some("label") Syntax_Token("POST_LABEL") loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(27, 33)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 32 } span=(27, 32)
              Some("payload") Leaf(String("label")) loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 32 } span=(27, 32)
            Some("payload") Leaf(String("label")) loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(27, 33)
        Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(34, 35)
      Some("group") Group_Brace loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(35, 35)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(35, 35)
[]
SOURCE "label~: for i = 0; i < 2; i = i + 1 { continue label~ }"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(0, 55)
  Some("expr") Expr_For loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(0, 55)
    Some("label") Syntax_Token("POST_LABEL") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(0, 6)
      Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(0, 5)
        Some("payload") Leaf(String("label")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(0, 5)
      Some("payload") Leaf(String("label")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(0, 6)
    Some("op") Syntax_Token(":") loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
    Some("kw") Syntax_Token("for") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(8, 11)
    Some("init") List_ForBindingList loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(12, 17)
      Some("item") Binding_For loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(12, 17)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
            Some("payload") Leaf(String("i")) loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
          Some("payload") Leaf(String("i")) loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
        Some("op") Syntax_Token("=") loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
            Some("payload") Leaf(String("=")) loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
        Some("expr") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
          Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
            Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
              Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
            Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
          Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
            Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
          Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
            Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
        Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
              Some("payload") Leaf(String("i")) loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
    Some("cond") Expr_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(19, 24)
      Some("lhs") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
            Some("payload") Leaf(String("i")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
          Some("payload") Leaf(String("i")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
        Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
              Some("payload") Leaf(String("i")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
      Some("op") Syntax_Token("INFIX1") loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
        Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
          Some("payload") Leaf(String("<")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
        Some("payload") Leaf(String("<")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
      Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
        Some("payload") Leaf(String("<")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
      Some("rhs") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(23, 24)
        Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(23, 24)
          Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(23, 24)
            Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(23, 24)
          Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(23, 24)
        Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(23, 24)
          Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(23, 24)
        Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(23, 24)
          Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(23, 24)
    Some("continue") List_ForBindingList loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(26, 35)
      Some("item") Binding_For loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(26, 35)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
            Some("payload") Leaf(String("i")) loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
          Some("payload") Leaf(String("i")) loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
        Some("op") Syntax_Token("=") loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
            Some("payload") Leaf(String("=")) loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
        Some("expr") Expr_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(30, 35)
          Some("lhs") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(30, 31)
            Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(30, 31)
              Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(30, 31)
                Some("payload") Leaf(String("i")) loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(30, 31)
              Some("payload") Leaf(String("i")) loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(30, 31)
            Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(30, 31)
              Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(30, 31)
                Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(30, 31)
                  Some("payload") Leaf(String("i")) loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(30, 31)
          Some("op") Syntax_Token("+") loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(32, 33)
            Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(32, 33)
              Some("payload") Leaf(String("+")) loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(32, 33)
          Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(32, 33)
            Some("payload") Leaf(String("+")) loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(32, 33)
          Some("rhs") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(34, 35)
            Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(34, 35)
              Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(34, 35)
                Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(34, 35)
              Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(34, 35)
            Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(34, 35)
              Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(34, 35)
            Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(34, 35)
              Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(34, 35)
        Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
              Some("payload") Leaf(String("i")) loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
    Some("body") Expr_Block loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(36, 55)
      Some("body") List_BlockStatementList loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(36, 55)
        Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(36, 37)
        Some("item") Expr_Continue loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 53 } span=(38, 53)
          Some("kw") Syntax_Token("continue") loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 46 } span=(38, 46)
          Some("label") Syntax_Token("POST_LABEL") loc={ fname: "", lnum: 1, bol: 0, cnum: 47 },{ fname: "", lnum: 1, bol: 0, cnum: 53 } span=(47, 53)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 47 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(47, 52)
              Some("payload") Leaf(String("label")) loc={ fname: "", lnum: 1, bol: 0, cnum: 47 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(47, 52)
            Some("payload") Leaf(String("label")) loc={ fname: "", lnum: 1, bol: 0, cnum: 47 },{ fname: "", lnum: 1, bol: 0, cnum: 53 } span=(47, 53)
        Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 54 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(54, 55)
      Some("group") Group_Brace loc={ fname: "", lnum: 1, bol: 0, cnum: 55 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(55, 55)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 55 },{ fname: "", lnum: 1, bol: 0, cnum: 55 } span=(55, 55)
[]
SOURCE "label~: for x in xs { x }"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(0, 25)
  Some("expr") Expr_ForEach loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(0, 25)
    Some("label") Syntax_Token("POST_LABEL") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(0, 6)
      Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(0, 5)
        Some("payload") Leaf(String("label")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(0, 5)
      Some("payload") Leaf(String("label")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(0, 6)
    Some("op") Syntax_Token(":") loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
    Some("kw") Syntax_Token("for") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(8, 11)
    Some("pattern") Pattern_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
      Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
        Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
          Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
        Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
      Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
        Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
          Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
    Some("kw") Syntax_Token("in") loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(14, 16)
    Some("expr") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(17, 19)
      Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(17, 19)
        Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(17, 19)
          Some("payload") Leaf(String("xs")) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(17, 19)
        Some("payload") Leaf(String("xs")) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(17, 19)
      Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(17, 19)
        Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(17, 19)
          Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(17, 19)
            Some("payload") Leaf(String("xs")) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(17, 19)
    Some("body") Expr_Block loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(20, 25)
      Some("body") List_BlockStatementList loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(20, 25)
        Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
        Some("item") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
          Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
              Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
          Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
                Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
        Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(24, 25)
      Some("group") Group_Brace loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(25, 25)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(25, 25)
[]
SOURCE "try f() catch { _ => 0 } else { x => x }"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(0, 40)
  Some("expr") Expr_Try loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(0, 24)
    Some("kw") Syntax_Token("try") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(0, 3)
    Some("body") Expr_Apply loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(4, 7)
      Some("func") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
            Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
          Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
        Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
              Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
      Some("arg") List_ArgumentList loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(5, 7)
        Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
        Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
    Some("kw") Syntax_Token("catch") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(8, 13)
    Some("case") List_MatchCaseList loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(14, 24)
      Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
      Some("case") Case_MatchCase loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(16, 22)
        Some("pattern") Pattern_Any loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
          Some("name") Syntax_Token("_") loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
              Some("payload") Leaf(String("_")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 17 } span=(16, 17)
        Some("op") Syntax_Token("=>") loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(18, 20)
        Some("body") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
          Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
            Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
              Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
            Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
          Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
            Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
          Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
            Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
      Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(23, 24)
    Some("has_try") Flag_HasTry loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(24, 24)
      Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(24, 24)
  Some("error") Error loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(25, 29)
    Some("item") Syntax_Unexpected("else") loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(25, 29)
  Some("error") Error loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(30, 31)
    Some("item") Syntax_Unexpected("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(30, 31)
  Some("error") Error loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(32, 33)
    Some("item") Syntax_Unexpected("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(32, 33)
      Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(32, 33)
        Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(32, 33)
      Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(32, 33)
  Some("error") Error loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(34, 36)
    Some("item") Syntax_Unexpected("=>") loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(34, 36)
  Some("error") Error loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
    Some("item") Syntax_Unexpected("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
      Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
        Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
      Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
  Some("error") Error loc={ fname: "", lnum: 1, bol: 0, cnum: 39 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(39, 40)
    Some("item") Syntax_Unexpected("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 39 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(39, 40)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(40, 40)
[{"type":"Error","loc":{"file":"","start":{"line":1,"column":26},"end":{"line":1,"column":30}},"msg":"Unexpected token `else`, you may expect `;`, EOF."}]
SOURCE "f() catch { _ => 0 }"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(0, 20)
  Some("expr") Expr_Try loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(0, 20)
    Some("body") Expr_Apply loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(0, 3)
      Some("func") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
            Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
          Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
        Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
              Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 1 } span=(0, 1)
      Some("arg") List_ArgumentList loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(1, 3)
        Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 1 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(1, 2)
        Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 2 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(2, 3)
    Some("kw") Syntax_Token("catch") loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(4, 9)
    Some("case") List_MatchCaseList loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(10, 20)
      Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
      Some("case") Case_MatchCase loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(12, 18)
        Some("pattern") Pattern_Any loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
          Some("name") Syntax_Token("_") loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
              Some("payload") Leaf(String("_")) loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
        Some("op") Syntax_Token("=>") loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(14, 16)
        Some("body") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
          Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
            Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
              Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
            Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
          Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
            Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
          Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
            Some("payload") Leaf(String("0")) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
      Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
    Some("has_try") Flag_HasTry loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(20, 20)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(20, 20)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(20, 20)
[]
SOURCE "try? f()"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(0, 8)
  Some("expr") Expr_MissingExpr loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(0, 8)
    Some("error") Error loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
      Some("item") Syntax_Unexpected("try?") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
    Some("error") Error loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
      Some("item") Syntax_Unexpected("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
        Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
          Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
        Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
    Some("error") Error loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
      Some("item") Syntax_Unexpected("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
    Some("error") Error loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
      Some("item") Syntax_Unexpected(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(8, 8)
[{"type":"Error","loc":{"file":"","start":{"line":1,"column":1},"end":{"line":1,"column":5}},"msg":"Unexpected token `try?`, you may expect simple expression."}]
SOURCE "// 🐇\nmatch x { // first\n // second\n { a, .. } => a }"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 4, bol: 35, cnum: 52 } span=(0, 53)
  Some("expr") Expr_Match loc={ fname: "", lnum: 2, bol: 5, cnum: 5 },{ fname: "", lnum: 4, bol: 35, cnum: 52 } span=(6, 53)
    Some("kw") Syntax_Token("match") loc={ fname: "", lnum: 2, bol: 5, cnum: 5 },{ fname: "", lnum: 2, bol: 5, cnum: 10 } span=(6, 11)
    Some("expr") Expr_Ident loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
      Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
        Some("name_value") Name_Identifier loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
          Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
        Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
      Some("semantic_name") Name_Var loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
        Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
          Some("component") Name_Identifier loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
    Some("open") Syntax_Token("{") loc={ fname: "", lnum: 2, bol: 5, cnum: 13 },{ fname: "", lnum: 2, bol: 5, cnum: 14 } span=(14, 15)
    Some("trivia") Syntax_Token("COMMENT") loc={ fname: "", lnum: 2, bol: 5, cnum: 15 },{ fname: "", lnum: 2, bol: 5, cnum: 23 } span=(16, 24)
      Some("comment") Comment_InlineTrailing loc={ fname: "", lnum: 2, bol: 5, cnum: 15 },{ fname: "", lnum: 2, bol: 5, cnum: 23 } span=(16, 24)
        Some("content") Comment_Content loc={ fname: "", lnum: 2, bol: 5, cnum: 15 },{ fname: "", lnum: 2, bol: 5, cnum: 23 } span=(16, 24)
          Some("payload") Leaf(String("// first")) loc={ fname: "", lnum: 2, bol: 5, cnum: 15 },{ fname: "", lnum: 2, bol: 5, cnum: 23 } span=(16, 24)
        Some("consumed_by_docstring") Comment_ConsumedByDocstring loc={ fname: "", lnum: 2, bol: 5, cnum: 15 },{ fname: "", lnum: 2, bol: 5, cnum: 15 } span=(16, 16)
          Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 2, bol: 5, cnum: 15 },{ fname: "", lnum: 2, bol: 5, cnum: 15 } span=(16, 16)
    Some("trivia") Syntax_Token("COMMENT") loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 34 } span=(26, 35)
      Some("comment") Comment_Ownline loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 34 } span=(26, 35)
        Some("content") Comment_Content loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 34 } span=(26, 35)
          Some("payload") Leaf(String("// second")) loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 34 } span=(26, 35)
        Some("leading_blank_line") Comment_LeadingBlankLine loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 25 } span=(26, 26)
          Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 25 } span=(26, 26)
        Some("trailing_blank_line") Comment_TrailingBlankLine loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 25 } span=(26, 26)
          Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 25 } span=(26, 26)
        Some("consumed_by_docstring") Comment_ConsumedByDocstring loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 25 } span=(26, 26)
          Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 25 } span=(26, 26)
    Some("case") Case_MatchCase loc={ fname: "", lnum: 4, bol: 35, cnum: 36 },{ fname: "", lnum: 4, bol: 35, cnum: 50 } span=(37, 51)
      Some("pattern") Pattern_Record loc={ fname: "", lnum: 4, bol: 35, cnum: 36 },{ fname: "", lnum: 4, bol: 35, cnum: 45 } span=(37, 46)
        Some("body") List_RecordPatternFieldList loc={ fname: "", lnum: 4, bol: 35, cnum: 36 },{ fname: "", lnum: 4, bol: 35, cnum: 45 } span=(37, 46)
          Some("open") Syntax_Token("{") loc={ fname: "", lnum: 4, bol: 35, cnum: 36 },{ fname: "", lnum: 4, bol: 35, cnum: 37 } span=(37, 38)
          Some("item") Field_Pattern loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
            Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
              Some("name_value") Name_Identifier loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
                Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
              Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
            Some("semantic_name") Name_Field loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
              Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
                Some("component") Name_Identifier loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
                  Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
            Some("pun") Flag_Pun loc={ fname: "", lnum: 4, bol: 35, cnum: 39 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(40, 40)
              Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 4, bol: 35, cnum: 39 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(40, 40)
            Some("pattern") Pattern_Var loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
              Some("name") Name_Identifier loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
                Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
              Some("semantic_name") Name_Binder loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
                Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
                  Some("component") Name_Identifier loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
                    Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(39, 40)
          Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 4, bol: 35, cnum: 39 },{ fname: "", lnum: 4, bol: 35, cnum: 40 } span=(40, 41)
            Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 4, bol: 35, cnum: 39 },{ fname: "", lnum: 4, bol: 35, cnum: 39 } span=(40, 40)
          Some("item") Pattern_Rest loc={ fname: "", lnum: 4, bol: 35, cnum: 41 },{ fname: "", lnum: 4, bol: 35, cnum: 43 } span=(42, 44)
            Some("op") Syntax_Token("..") loc={ fname: "", lnum: 4, bol: 35, cnum: 41 },{ fname: "", lnum: 4, bol: 35, cnum: 43 } span=(42, 44)
              Some("operator") Operator_Infix loc={ fname: "", lnum: 4, bol: 35, cnum: 41 },{ fname: "", lnum: 4, bol: 35, cnum: 43 } span=(42, 44)
                Some("payload") Leaf(String("..")) loc={ fname: "", lnum: 4, bol: 35, cnum: 41 },{ fname: "", lnum: 4, bol: 35, cnum: 43 } span=(42, 44)
          Some("close") Syntax_Token("}") loc={ fname: "", lnum: 4, bol: 35, cnum: 44 },{ fname: "", lnum: 4, bol: 35, cnum: 45 } span=(45, 46)
        Some("openness") Openness_Open loc={ fname: "", lnum: 4, bol: 35, cnum: 45 },{ fname: "", lnum: 4, bol: 35, cnum: 45 } span=(46, 46)
      Some("op") Syntax_Token("=>") loc={ fname: "", lnum: 4, bol: 35, cnum: 46 },{ fname: "", lnum: 4, bol: 35, cnum: 48 } span=(47, 49)
      Some("body") Expr_Ident loc={ fname: "", lnum: 4, bol: 35, cnum: 49 },{ fname: "", lnum: 4, bol: 35, cnum: 50 } span=(50, 51)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 4, bol: 35, cnum: 49 },{ fname: "", lnum: 4, bol: 35, cnum: 50 } span=(50, 51)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 4, bol: 35, cnum: 49 },{ fname: "", lnum: 4, bol: 35, cnum: 50 } span=(50, 51)
            Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 4, bol: 35, cnum: 49 },{ fname: "", lnum: 4, bol: 35, cnum: 50 } span=(50, 51)
          Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 4, bol: 35, cnum: 49 },{ fname: "", lnum: 4, bol: 35, cnum: 50 } span=(50, 51)
        Some("semantic_name") Name_Var loc={ fname: "", lnum: 4, bol: 35, cnum: 49 },{ fname: "", lnum: 4, bol: 35, cnum: 50 } span=(50, 51)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 4, bol: 35, cnum: 49 },{ fname: "", lnum: 4, bol: 35, cnum: 50 } span=(50, 51)
            Some("component") Name_Identifier loc={ fname: "", lnum: 4, bol: 35, cnum: 49 },{ fname: "", lnum: 4, bol: 35, cnum: 50 } span=(50, 51)
              Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 4, bol: 35, cnum: 49 },{ fname: "", lnum: 4, bol: 35, cnum: 50 } span=(50, 51)
    Some("close") Syntax_Token("}") loc={ fname: "", lnum: 4, bol: 35, cnum: 51 },{ fname: "", lnum: 4, bol: 35, cnum: 52 } span=(52, 53)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 4, bol: 35, cnum: 52 },{ fname: "", lnum: 4, bol: 35, cnum: 52 } span=(53, 53)
[]
SOURCE "// 🐇\nmatch x { // first\n // second\n { \"k\": value, .. } => value }"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 4, bol: 35, cnum: 65 } span=(0, 66)
  Some("expr") Expr_Match loc={ fname: "", lnum: 2, bol: 5, cnum: 5 },{ fname: "", lnum: 4, bol: 35, cnum: 65 } span=(6, 66)
    Some("kw") Syntax_Token("match") loc={ fname: "", lnum: 2, bol: 5, cnum: 5 },{ fname: "", lnum: 2, bol: 5, cnum: 10 } span=(6, 11)
    Some("expr") Expr_Ident loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
      Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
        Some("name_value") Name_Identifier loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
          Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
        Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
      Some("semantic_name") Name_Var loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
        Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
          Some("component") Name_Identifier loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 12 } span=(12, 13)
    Some("open") Syntax_Token("{") loc={ fname: "", lnum: 2, bol: 5, cnum: 13 },{ fname: "", lnum: 2, bol: 5, cnum: 14 } span=(14, 15)
    Some("trivia") Syntax_Token("COMMENT") loc={ fname: "", lnum: 2, bol: 5, cnum: 15 },{ fname: "", lnum: 2, bol: 5, cnum: 23 } span=(16, 24)
      Some("comment") Comment_InlineTrailing loc={ fname: "", lnum: 2, bol: 5, cnum: 15 },{ fname: "", lnum: 2, bol: 5, cnum: 23 } span=(16, 24)
        Some("content") Comment_Content loc={ fname: "", lnum: 2, bol: 5, cnum: 15 },{ fname: "", lnum: 2, bol: 5, cnum: 23 } span=(16, 24)
          Some("payload") Leaf(String("// first")) loc={ fname: "", lnum: 2, bol: 5, cnum: 15 },{ fname: "", lnum: 2, bol: 5, cnum: 23 } span=(16, 24)
        Some("consumed_by_docstring") Comment_ConsumedByDocstring loc={ fname: "", lnum: 2, bol: 5, cnum: 15 },{ fname: "", lnum: 2, bol: 5, cnum: 15 } span=(16, 16)
          Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 2, bol: 5, cnum: 15 },{ fname: "", lnum: 2, bol: 5, cnum: 15 } span=(16, 16)
    Some("trivia") Syntax_Token("COMMENT") loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 34 } span=(26, 35)
      Some("comment") Comment_Ownline loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 34 } span=(26, 35)
        Some("content") Comment_Content loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 34 } span=(26, 35)
          Some("payload") Leaf(String("// second")) loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 34 } span=(26, 35)
        Some("leading_blank_line") Comment_LeadingBlankLine loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 25 } span=(26, 26)
          Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 25 } span=(26, 26)
        Some("trailing_blank_line") Comment_TrailingBlankLine loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 25 } span=(26, 26)
          Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 25 } span=(26, 26)
        Some("consumed_by_docstring") Comment_ConsumedByDocstring loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 25 } span=(26, 26)
          Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 3, bol: 24, cnum: 25 },{ fname: "", lnum: 3, bol: 24, cnum: 25 } span=(26, 26)
    Some("case") Case_MatchCase loc={ fname: "", lnum: 4, bol: 35, cnum: 36 },{ fname: "", lnum: 4, bol: 35, cnum: 63 } span=(37, 64)
      Some("pattern") Pattern_Map loc={ fname: "", lnum: 4, bol: 35, cnum: 36 },{ fname: "", lnum: 4, bol: 35, cnum: 54 } span=(37, 55)
        Some("body") List_MapPatternFieldList loc={ fname: "", lnum: 4, bol: 35, cnum: 36 },{ fname: "", lnum: 4, bol: 35, cnum: 54 } span=(37, 55)
          Some("open") Syntax_Token("{") loc={ fname: "", lnum: 4, bol: 35, cnum: 36 },{ fname: "", lnum: 4, bol: 35, cnum: 37 } span=(37, 38)
          Some("item") Field_MapPattern loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 48 } span=(39, 49)
            Some("key") Syntax_Token("STRING") loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 41 } span=(39, 42)
              Some("constant") Constant_String loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 41 } span=(39, 42)
                Some("payload") Leaf(String("k")) loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 41 } span=(39, 42)
              Some("payload") Leaf(String("k")) loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 41 } span=(39, 42)
            Some("constant") Constant_String loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 41 } span=(39, 42)
              Some("payload") Leaf(String("k")) loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 41 } span=(39, 42)
            Some("op") Syntax_Token(":") loc={ fname: "", lnum: 4, bol: 35, cnum: 41 },{ fname: "", lnum: 4, bol: 35, cnum: 42 } span=(42, 43)
            Some("pattern") Pattern_Var loc={ fname: "", lnum: 4, bol: 35, cnum: 43 },{ fname: "", lnum: 4, bol: 35, cnum: 48 } span=(44, 49)
              Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 4, bol: 35, cnum: 43 },{ fname: "", lnum: 4, bol: 35, cnum: 48 } span=(44, 49)
                Some("name_value") Name_Identifier loc={ fname: "", lnum: 4, bol: 35, cnum: 43 },{ fname: "", lnum: 4, bol: 35, cnum: 48 } span=(44, 49)
                  Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 4, bol: 35, cnum: 43 },{ fname: "", lnum: 4, bol: 35, cnum: 48 } span=(44, 49)
                Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 4, bol: 35, cnum: 43 },{ fname: "", lnum: 4, bol: 35, cnum: 48 } span=(44, 49)
              Some("semantic_name") Name_Binder loc={ fname: "", lnum: 4, bol: 35, cnum: 43 },{ fname: "", lnum: 4, bol: 35, cnum: 48 } span=(44, 49)
                Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 4, bol: 35, cnum: 43 },{ fname: "", lnum: 4, bol: 35, cnum: 48 } span=(44, 49)
                  Some("component") Name_Identifier loc={ fname: "", lnum: 4, bol: 35, cnum: 43 },{ fname: "", lnum: 4, bol: 35, cnum: 48 } span=(44, 49)
                    Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 4, bol: 35, cnum: 43 },{ fname: "", lnum: 4, bol: 35, cnum: 48 } span=(44, 49)
            Some("semantic_constant") Constant_String loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 41 } span=(39, 42)
              Some("payload") Leaf(String("k")) loc={ fname: "", lnum: 4, bol: 35, cnum: 38 },{ fname: "", lnum: 4, bol: 35, cnum: 41 } span=(39, 42)
            Some("match_absent") Flag_MatchAbsent loc={ fname: "", lnum: 4, bol: 35, cnum: 48 },{ fname: "", lnum: 4, bol: 35, cnum: 48 } span=(49, 49)
              Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 4, bol: 35, cnum: 48 },{ fname: "", lnum: 4, bol: 35, cnum: 48 } span=(49, 49)
          Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 4, bol: 35, cnum: 48 },{ fname: "", lnum: 4, bol: 35, cnum: 49 } span=(49, 50)
            Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 4, bol: 35, cnum: 48 },{ fname: "", lnum: 4, bol: 35, cnum: 48 } span=(49, 49)
          Some("item") Pattern_Rest loc={ fname: "", lnum: 4, bol: 35, cnum: 50 },{ fname: "", lnum: 4, bol: 35, cnum: 52 } span=(51, 53)
            Some("op") Syntax_Token("..") loc={ fname: "", lnum: 4, bol: 35, cnum: 50 },{ fname: "", lnum: 4, bol: 35, cnum: 52 } span=(51, 53)
              Some("operator") Operator_Infix loc={ fname: "", lnum: 4, bol: 35, cnum: 50 },{ fname: "", lnum: 4, bol: 35, cnum: 52 } span=(51, 53)
                Some("payload") Leaf(String("..")) loc={ fname: "", lnum: 4, bol: 35, cnum: 50 },{ fname: "", lnum: 4, bol: 35, cnum: 52 } span=(51, 53)
          Some("close") Syntax_Token("}") loc={ fname: "", lnum: 4, bol: 35, cnum: 53 },{ fname: "", lnum: 4, bol: 35, cnum: 54 } span=(54, 55)
        Some("openness") Openness_Open loc={ fname: "", lnum: 4, bol: 35, cnum: 54 },{ fname: "", lnum: 4, bol: 35, cnum: 54 } span=(55, 55)
      Some("op") Syntax_Token("=>") loc={ fname: "", lnum: 4, bol: 35, cnum: 55 },{ fname: "", lnum: 4, bol: 35, cnum: 57 } span=(56, 58)
      Some("body") Expr_Ident loc={ fname: "", lnum: 4, bol: 35, cnum: 58 },{ fname: "", lnum: 4, bol: 35, cnum: 63 } span=(59, 64)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 4, bol: 35, cnum: 58 },{ fname: "", lnum: 4, bol: 35, cnum: 63 } span=(59, 64)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 4, bol: 35, cnum: 58 },{ fname: "", lnum: 4, bol: 35, cnum: 63 } span=(59, 64)
            Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 4, bol: 35, cnum: 58 },{ fname: "", lnum: 4, bol: 35, cnum: 63 } span=(59, 64)
          Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 4, bol: 35, cnum: 58 },{ fname: "", lnum: 4, bol: 35, cnum: 63 } span=(59, 64)
        Some("semantic_name") Name_Var loc={ fname: "", lnum: 4, bol: 35, cnum: 58 },{ fname: "", lnum: 4, bol: 35, cnum: 63 } span=(59, 64)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 4, bol: 35, cnum: 58 },{ fname: "", lnum: 4, bol: 35, cnum: 63 } span=(59, 64)
            Some("component") Name_Identifier loc={ fname: "", lnum: 4, bol: 35, cnum: 58 },{ fname: "", lnum: 4, bol: 35, cnum: 63 } span=(59, 64)
              Some("payload") Leaf(String("value")) loc={ fname: "", lnum: 4, bol: 35, cnum: 58 },{ fname: "", lnum: 4, bol: 35, cnum: 63 } span=(59, 64)
    Some("close") Syntax_Token("}") loc={ fname: "", lnum: 4, bol: 35, cnum: 64 },{ fname: "", lnum: 4, bol: 35, cnum: 65 } span=(65, 66)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 4, bol: 35, cnum: 65 },{ fname: "", lnum: 4, bol: 35, cnum: 65 } span=(66, 66)
[]
SOURCE "match x { (a) => a; [a, ..rest] => a }"
None Expression loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(0, 38)
  Some("expr") Expr_Match loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(0, 38)
    Some("kw") Syntax_Token("match") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(0, 5)
    Some("expr") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
      Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
        Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
          Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
        Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
      Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
        Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
          Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
    Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
    Some("case") Case_MatchCase loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(10, 18)
      Some("pattern") Pattern_Tuple loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(10, 13)
        Some("body") List_TuplePatternList loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(10, 13)
          Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
          Some("item") Pattern_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
            Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
              Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
                Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
              Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
            Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
              Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
                Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
                  Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
          Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(12, 13)
        Some("pattern_group") Pattern_Group loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(13, 13)
      Some("op") Syntax_Token("=>") loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(14, 16)
      Some("body") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
            Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
          Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
        Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
              Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
    Some("sep") Syntax_Token("SEMI") loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(18, 19)
      Some("trailing") TrailingMark_Semi loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(18, 18)
      Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(18, 19)
    Some("case") Case_MatchCase loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(20, 36)
      Some("pattern") Pattern_Array loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(20, 31)
        Some("body") ArrayPatterns_Open loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(20, 31)
          Some("body") List_ArrayPatternList loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(20, 31)
            Some("open") Syntax_Token("[") loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
            Some("item") ArrayPattern_Pattern loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
              Some("pattern") Pattern_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
                Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
                  Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
                    Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
                  Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
                Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
                  Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
                    Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
                      Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
            Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
              Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(22, 22)
            Some("item") Pattern_Rest loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(24, 30)
              Some("op") Syntax_Token("..") loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(24, 26)
                Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(24, 26)
                  Some("payload") Leaf(String("..")) loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(24, 26)
              Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(26, 30)
                Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(26, 30)
                  Some("payload") Leaf(String("rest")) loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(26, 30)
                Some("payload") Leaf(String("rest")) loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(26, 30)
              Some("dot_dot_binder") DotDotBinder_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(30, 30)
            Some("close") Syntax_Token("]") loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(30, 31)
      Some("op") Syntax_Token("=>") loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(32, 34)
      Some("body") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
            Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
          Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
        Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
              Some("payload") Leaf(String("a")) loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
    Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(38, 38)
[]
