SOURCE "pub async fn f(x : Int) -> Int { x }"
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(0, 36)
  Some("item") Impl_Function loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(0, 36)
    Some("vis") Visibility_Pub loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(0, 3)
      Some("kw") Syntax_Token("pub") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(0, 3)
    Some("kw") Syntax_Token("async") loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(4, 9)
      Some("flag") Flag_Async 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("kw") Syntax_Token("fn") loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(10, 12)
    Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
      Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
        Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
      Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
    Some("params") List_ParameterList loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(14, 23)
      Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
      Some("item") Parameter_Positional loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(15, 22)
        Some("pattern") Pattern_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
          Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
              Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
          Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
                Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
        Some("op") Syntax_Token(":") loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
        Some("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
          Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
              Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
            Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
          Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
                Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
      Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
    Some("clause") Clause_ReturnType 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("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(27, 30)
        Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(27, 30)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(27, 30)
            Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(27, 30)
          Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(27, 30)
        Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(27, 30)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(27, 30)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(27, 30)
              Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(27, 30)
    Some("body") Expr_Block loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(31, 36)
      Some("body") List_BlockStatementList loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(31, 36)
        Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 32 } span=(31, 32)
        Some("item") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(33, 34)
          Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(33, 34)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(33, 34)
              Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(33, 34)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(33, 34)
          Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(33, 34)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(33, 34)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(33, 34)
                Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(33, 34)
        Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
      Some("group") Group_Brace loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(36, 36)
    Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
      Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
        Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
          Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
    Some("declare") Flag_Declare loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(36, 36)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(36, 36)
    Some("async") Flag_Async 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("decl_body_kind") DeclBody_Expr loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(36, 36)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(36, 36)
[]
SOURCE "declare async fn f(x : Int) -> Int"
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(0, 34)
  Some("item") Impl_Function loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(0, 34)
    Some("kw") Syntax_Token("declare") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(0, 7)
      Some("flag") Flag_Declare 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("async") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(8, 13)
      Some("flag") Flag_Async 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("kw") Syntax_Token("fn") loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(14, 16)
    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("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
      Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
    Some("params") List_ParameterList loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(18, 27)
      Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(18, 19)
      Some("item") Parameter_Positional loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(19, 26)
        Some("pattern") Pattern_Var 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("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
          Some("semantic_name") Name_Binder 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("x")) 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: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
        Some("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(23, 26)
          Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(23, 26)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(23, 26)
              Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(23, 26)
            Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(23, 26)
          Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(23, 26)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(23, 26)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(23, 26)
                Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(23, 26)
      Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
    Some("clause") Clause_ReturnType loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(28, 34)
      Some("op") Syntax_Token("->") loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(28, 30)
      Some("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(31, 34)
        Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(31, 34)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(31, 34)
            Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(31, 34)
          Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(31, 34)
        Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(31, 34)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(31, 34)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(31, 34)
              Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(31, 34)
    Some("semantic_name") Name_Binder 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("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
    Some("vis") Visibility_Default loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(34, 34)
    Some("declare") Flag_Declare loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(34, 34)
      Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(34, 34)
    Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(34, 34)
      Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(34, 34)
    Some("decl_body_kind") DeclBody_None loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(34, 34)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 34 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(34, 34)
[]
SOURCE "fn Type::method(self : Type) -> Int { 1 }"
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(0, 41)
  Some("item") Impl_Function loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(0, 41)
    Some("kw") Syntax_Token("fn") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(0, 2)
    Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(3, 7)
      Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(3, 7)
        Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(3, 7)
      Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(3, 7)
    Some("op") Syntax_Token("::") loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(7, 9)
    Some("method") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(9, 15)
      Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(9, 15)
        Some("payload") Leaf(String("method")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(9, 15)
      Some("payload") Leaf(String("method")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(9, 15)
    Some("params") List_ParameterList loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(15, 28)
      Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
      Some("item") Parameter_Positional loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(16, 27)
        Some("pattern") Pattern_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(16, 20)
          Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(16, 20)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(16, 20)
              Some("payload") Leaf(String("self")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(16, 20)
            Some("payload") Leaf(String("self")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(16, 20)
          Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(16, 20)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(16, 20)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(16, 20)
                Some("payload") Leaf(String("self")) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(16, 20)
        Some("op") Syntax_Token(":") loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(21, 22)
        Some("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(23, 27)
          Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(23, 27)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(23, 27)
              Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(23, 27)
            Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(23, 27)
          Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(23, 27)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(23, 27)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(23, 27)
                Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(23, 27)
      Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(27, 28)
    Some("clause") Clause_ReturnType loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(29, 35)
      Some("op") Syntax_Token("->") loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(29, 31)
      Some("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
        Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
            Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
          Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
        Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
              Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
    Some("body") Expr_Block loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(36, 41)
      Some("body") List_BlockStatementList loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(36, 41)
        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_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
          Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
            Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
              Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
            Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
          Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
            Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
          Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
            Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
        Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(40, 41)
      Some("group") Group_Brace loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(41, 41)
    Some("semantic_type_name") Name_Type loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(3, 7)
      Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(3, 7)
        Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(3, 7)
          Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(3, 7)
    Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(9, 15)
      Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(9, 15)
        Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(9, 15)
          Some("payload") Leaf(String("method")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(9, 15)
    Some("vis") Visibility_Default loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(41, 41)
    Some("declare") Flag_Declare loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(41, 41)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(41, 41)
    Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(41, 41)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(41, 41)
    Some("decl_body_kind") DeclBody_Expr loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(41, 41)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 41 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(41, 41)
[]
SOURCE "impl Trait for Type with method(self) { 1 }"
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(0, 43)
  Some("item") Impl_ImplMethod loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(0, 43)
    Some("kw") Syntax_Token("impl") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
    Some("name") Syntax_Token("UIDENT") 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("Trait")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
      Some("payload") Leaf(String("Trait")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
    Some("kw") Syntax_Token("for") loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(11, 14)
    Some("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(15, 19)
      Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(15, 19)
        Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(15, 19)
          Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(15, 19)
        Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(15, 19)
      Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(15, 19)
        Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(15, 19)
          Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(15, 19)
            Some("payload") Leaf(String("Type")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(15, 19)
    Some("kw") Syntax_Token("with") loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(20, 24)
    Some("method") Impl_Function loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(25, 43)
      Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(25, 31)
        Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(25, 31)
          Some("payload") Leaf(String("method")) loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(25, 31)
        Some("payload") Leaf(String("method")) loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(25, 31)
      Some("params") List_ParameterList loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(31, 37)
        Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 31 },{ fname: "", lnum: 1, bol: 0, cnum: 32 } span=(31, 32)
        Some("item") Parameter_Positional loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(32, 36)
          Some("pattern") Pattern_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(32, 36)
            Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(32, 36)
              Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(32, 36)
                Some("payload") Leaf(String("self")) loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(32, 36)
              Some("payload") Leaf(String("self")) loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(32, 36)
            Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(32, 36)
              Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(32, 36)
                Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(32, 36)
                  Some("payload") Leaf(String("self")) loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(32, 36)
        Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(36, 37)
      Some("body") Expr_Block loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(38, 43)
        Some("body") List_BlockStatementList loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(38, 43)
          Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
          Some("item") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(40, 41)
            Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(40, 41)
              Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(40, 41)
                Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(40, 41)
              Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(40, 41)
            Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(40, 41)
              Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(40, 41)
            Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(40, 41)
              Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 41 } span=(40, 41)
          Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 42 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(42, 43)
        Some("group") Group_Brace loc={ fname: "", lnum: 1, bol: 0, cnum: 43 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(43, 43)
      Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(25, 31)
        Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(25, 31)
          Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(25, 31)
            Some("payload") Leaf(String("method")) loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(25, 31)
      Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 43 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(43, 43)
        Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 43 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(43, 43)
      Some("declare") Flag_Declare loc={ fname: "", lnum: 1, bol: 0, cnum: 43 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(43, 43)
        Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 43 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(43, 43)
      Some("decl_body_kind") DeclBody_Expr loc={ fname: "", lnum: 1, bol: 0, cnum: 43 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(43, 43)
    Some("semantic_name") Name_Type loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
      Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
        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("Trait")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
    Some("vis") Visibility_Default loc={ fname: "", lnum: 1, bol: 0, cnum: 43 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(43, 43)
    Some("declare") Flag_Declare loc={ fname: "", lnum: 1, bol: 0, cnum: 43 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(43, 43)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 43 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(43, 43)
    Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 43 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(43, 43)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 43 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(43, 43)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 43 },{ fname: "", lnum: 1, bol: 0, cnum: 43 } span=(43, 43)
[]
SOURCE "trait T { async fn f(Self) -> Int; fn g(Self) -> Int }"
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 54 } span=(0, 54)
  Some("item") Impl_Trait loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 54 } span=(0, 54)
    Some("kw") Syntax_Token("trait") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(0, 5)
    Some("name") Syntax_Token("UIDENT") 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("T")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
      Some("payload") Leaf(String("T")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
    Some("body") List_TraitMethodList loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 54 } span=(8, 54)
      Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
      Some("item") TraitMethod_Declaration loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(10, 33)
        Some("kw") Syntax_Token("async") loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(10, 15)
          Some("flag") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(10, 10)
            Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(10, 10)
        Some("kw") Syntax_Token("fn") loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(16, 18)
        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("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
          Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
        Some("params") List_TraitMethodParameterList loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(20, 26)
          Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
          Some("item") Parameter_DiscardPositional loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(21, 25)
            Some("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(21, 25)
              Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(21, 25)
                Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(21, 25)
                  Some("payload") Leaf(String("Self")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(21, 25)
                Some("payload") Leaf(String("Self")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(21, 25)
              Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(21, 25)
                Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(21, 25)
                  Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(21, 25)
                    Some("payload") Leaf(String("Self")) loc={ fname: "", lnum: 1, bol: 0, cnum: 21 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(21, 25)
          Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(25, 26)
        Some("clause") Clause_ReturnType loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(27, 33)
          Some("op") Syntax_Token("->") loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(27, 29)
          Some("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
            Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
              Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
                Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
              Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
            Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
              Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
                Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
                  Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(30, 33)
        Some("semantic_name") Name_Binder 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("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
        Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(33, 33)
          Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(33, 33)
      Some("sep") Syntax_Token("SEMI") loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(33, 34)
        Some("trailing") TrailingMark_Semi loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 33 } span=(33, 33)
        Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 33 },{ fname: "", lnum: 1, bol: 0, cnum: 34 } span=(33, 34)
      Some("item") TraitMethod_Declaration loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(35, 52)
        Some("kw") Syntax_Token("fn") loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(35, 37)
        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("g")) loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
          Some("payload") Leaf(String("g")) loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
        Some("params") List_TraitMethodParameterList loc={ fname: "", lnum: 1, bol: 0, cnum: 39 },{ fname: "", lnum: 1, bol: 0, cnum: 45 } span=(39, 45)
          Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 39 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(39, 40)
          Some("item") Parameter_DiscardPositional loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 44 } span=(40, 44)
            Some("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 44 } span=(40, 44)
              Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 44 } span=(40, 44)
                Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 44 } span=(40, 44)
                  Some("payload") Leaf(String("Self")) loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 44 } span=(40, 44)
                Some("payload") Leaf(String("Self")) loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 44 } span=(40, 44)
              Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 44 } span=(40, 44)
                Some("long_ident") LongIdent_Ident 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: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 44 } span=(40, 44)
                    Some("payload") Leaf(String("Self")) loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 44 } span=(40, 44)
          Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 44 },{ fname: "", lnum: 1, bol: 0, cnum: 45 } span=(44, 45)
        Some("clause") Clause_ReturnType loc={ fname: "", lnum: 1, bol: 0, cnum: 46 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(46, 52)
          Some("op") Syntax_Token("->") loc={ fname: "", lnum: 1, bol: 0, cnum: 46 },{ fname: "", lnum: 1, bol: 0, cnum: 48 } span=(46, 48)
          Some("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 49 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(49, 52)
            Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 49 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(49, 52)
              Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 49 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(49, 52)
                Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 49 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(49, 52)
              Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 49 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(49, 52)
            Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 49 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(49, 52)
              Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 49 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(49, 52)
                Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 49 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(49, 52)
                  Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 49 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(49, 52)
        Some("semantic_name") Name_Binder 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("g")) loc={ fname: "", lnum: 1, bol: 0, cnum: 38 },{ fname: "", lnum: 1, bol: 0, cnum: 39 } span=(38, 39)
        Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 52 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(52, 52)
          Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 52 },{ fname: "", lnum: 1, bol: 0, cnum: 52 } span=(52, 52)
      Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 53 },{ fname: "", lnum: 1, bol: 0, cnum: 54 } span=(53, 54)
    Some("semantic_name") Name_Binder 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("T")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
    Some("vis") Visibility_Default loc={ fname: "", lnum: 1, bol: 0, cnum: 54 },{ fname: "", lnum: 1, bol: 0, cnum: 54 } span=(54, 54)
    Some("declare") Flag_Declare loc={ fname: "", lnum: 1, bol: 0, cnum: 54 },{ fname: "", lnum: 1, bol: 0, cnum: 54 } span=(54, 54)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 54 },{ fname: "", lnum: 1, bol: 0, cnum: 54 } span=(54, 54)
    Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 54 },{ fname: "", lnum: 1, bol: 0, cnum: 54 } span=(54, 54)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 54 },{ fname: "", lnum: 1, bol: 0, cnum: 54 } span=(54, 54)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 54 },{ fname: "", lnum: 1, bol: 0, cnum: 54 } span=(54, 54)
[]
SOURCE "pub struct S { x : Int; mut y : Int }"
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(0, 37)
  Some("item") Impl_RecordStruct loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(0, 37)
    Some("vis") Visibility_Pub loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(0, 3)
      Some("kw") Syntax_Token("pub") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(0, 3)
    Some("kw") Syntax_Token("struct") loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(4, 10)
    Some("name") Syntax_Token("UIDENT") 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("S")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
      Some("payload") Leaf(String("S")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
    Some("body") List_StructFieldList loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(13, 37)
      Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
      Some("item") Field_Declaration loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(15, 22)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
            Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
          Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
        Some("op") Syntax_Token(":") loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
        Some("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
          Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
              Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
            Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
          Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
                Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(19, 22)
        Some("semantic_name") Name_Field loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
              Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
        Some("mutable") Flag_Mutable loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(22, 22)
          Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(22, 22)
        Some("vis") Visibility_Default loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(22, 22)
      Some("sep") Syntax_Token("SEMI") loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
        Some("trailing") TrailingMark_Semi loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 22 } span=(22, 22)
        Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
      Some("item") Field_Declaration loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(24, 35)
        Some("mut") Syntax_Token("mut") loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(24, 27)
        Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
            Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
          Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
        Some("op") Syntax_Token(":") loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 31 } span=(30, 31)
        Some("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
          Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
              Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
            Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
          Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
            Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
              Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
                Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 32 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(32, 35)
        Some("semantic_name") Name_Field loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
              Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 29 } span=(28, 29)
        Some("mutable") Flag_Mutable loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(35, 35)
          Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(35, 35)
        Some("vis") Visibility_Default loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(35, 35)
      Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(36, 37)
    Some("semantic_name") Name_Type 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("S")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
    Some("type_desc") TypeDesc_Record loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(37, 37)
    Some("declare") Flag_Declare loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(37, 37)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(37, 37)
    Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(37, 37)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(37, 37)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(37, 37)
[]
SOURCE "enum E { C(Int); D(x~ : Int) }"
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(0, 30)
  Some("item") Impl_EnumVariant loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(0, 30)
    Some("kw") Syntax_Token("enum") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
    Some("name") Syntax_Token("UIDENT") 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("E")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
      Some("payload") Leaf(String("E")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
    Some("body") List_ConstructorList loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(7, 30)
      Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
      Some("item") Clause_ConstructorDecl loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(9, 15)
        Some("name") Syntax_Token("UIDENT") 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("C")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
          Some("payload") Leaf(String("C")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
        Some("params") List_ConstructorParameterList loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(10, 15)
          Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(10, 11)
          Some("item") Parameter_ConstructorPositional loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(11, 14)
            Some("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(11, 14)
              Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(11, 14)
                Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(11, 14)
                  Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(11, 14)
                Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(11, 14)
              Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(11, 14)
                Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(11, 14)
                  Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(11, 14)
                    Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(11, 14)
            Some("mutable") Flag_Mutable loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(14, 14)
              Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(14, 14)
          Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 14 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(14, 15)
        Some("semantic_name") Name_Constr 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("C")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
      Some("sep") Syntax_Token("SEMI") loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
        Some("trailing") TrailingMark_Semi loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 15 } span=(15, 15)
        Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
      Some("item") Clause_ConstructorDecl loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(17, 28)
        Some("name") Syntax_Token("UIDENT") 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("D")) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
          Some("payload") Leaf(String("D")) loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(17, 18)
        Some("params") List_ConstructorParameterList loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(18, 28)
          Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(18, 19)
          Some("item") Parameter_ConstructorLabelled loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(19, 27)
            Some("name") Syntax_Token("POST_LABEL") loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(19, 21)
              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("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
              Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(19, 21)
            Some("op") Syntax_Token(":") loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
            Some("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(24, 27)
              Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(24, 27)
                Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(24, 27)
                  Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(24, 27)
                Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(24, 27)
              Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(24, 27)
                Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(24, 27)
                  Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(24, 27)
                    Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(24, 27)
            Some("mutable") Flag_Mutable 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("semantic_name") Name_Constr 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("D")) 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: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(29, 30)
    Some("semantic_name") Name_Type 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("E")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(5, 6)
    Some("type_desc") TypeDesc_Variant loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(30, 30)
    Some("vis") Visibility_Default loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(30, 30)
    Some("declare") Flag_Declare loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(30, 30)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(30, 30)
    Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(30, 30)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(30, 30)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 30 },{ fname: "", lnum: 1, bol: 0, cnum: 30 } span=(30, 30)
[]
SOURCE "type Alias = Int"
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(0, 16)
  Some("item") Impl_TypeAlias loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(0, 16)
    Some("kw") Syntax_Token("type") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
    Some("name") Syntax_Token("UIDENT") 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("Alias")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
      Some("payload") Leaf(String("Alias")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
    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("type") Type_Name loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(13, 16)
      Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(13, 16)
        Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(13, 16)
          Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(13, 16)
        Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(13, 16)
      Some("semantic_name") Name_ConstrId loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(13, 16)
        Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(13, 16)
          Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(13, 16)
            Some("payload") Leaf(String("Int")) loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(13, 16)
    Some("semantic_name") Name_Type loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
      Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
        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("Alias")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(5, 10)
    Some("type_desc") TypeDesc_Alias loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(16, 16)
    Some("vis") Visibility_Default loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(16, 16)
    Some("declare") Flag_Declare loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(16, 16)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(16, 16)
    Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(16, 16)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(16, 16)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(16, 16)
[]
SOURCE "type Abstract"
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(0, 13)
  Some("item") Impl_TypeAbstract loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(0, 13)
    Some("kw") Syntax_Token("type") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 4)
    Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(5, 13)
      Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(5, 13)
        Some("payload") Leaf(String("Abstract")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(5, 13)
      Some("payload") Leaf(String("Abstract")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(5, 13)
    Some("semantic_name") Name_Type loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(5, 13)
      Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(5, 13)
        Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(5, 13)
          Some("payload") Leaf(String("Abstract")) loc={ fname: "", lnum: 1, bol: 0, cnum: 5 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(5, 13)
    Some("type_desc") TypeDesc_Abstract loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(13, 13)
    Some("vis") Visibility_Default loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(13, 13)
    Some("declare") Flag_Declare 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("async") Flag_Async 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("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 13 } span=(13, 13)
[]
SOURCE "suberror E { C }"
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(0, 16)
  Some("item") Impl_SuberrorEnum loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(0, 16)
    Some("kw") Syntax_Token("suberror") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(0, 8)
    Some("name") Syntax_Token("UIDENT") 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("E")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
      Some("payload") Leaf(String("E")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
    Some("body") List_ConstructorList loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(11, 16)
      Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 11 },{ fname: "", lnum: 1, bol: 0, cnum: 12 } span=(11, 12)
      Some("item") Clause_ConstructorDecl loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
        Some("name") Syntax_Token("UIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
            Some("payload") Leaf(String("C")) loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
          Some("payload") Leaf(String("C")) loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
        Some("semantic_name") Name_Constr loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
              Some("payload") Leaf(String("C")) loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(13, 14)
      Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
    Some("semantic_name") Name_Type 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("E")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
    Some("type_desc") TypeDesc_ErrorEnumPayload loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(16, 16)
    Some("vis") Visibility_Default loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(16, 16)
    Some("declare") Flag_Declare loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(16, 16)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(16, 16)
    Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(16, 16)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(16, 16)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(16, 16)
[]
SOURCE "let x = 1\nconst y = 2"
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(0, 21)
  Some("item") Impl_Let loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(0, 9)
    Some("kw") Syntax_Token("let") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(0, 3)
    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("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
        Some("payload") Leaf(String("x")) 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("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 5 } span=(4, 5)
    Some("op") Syntax_Token("=") loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
      Some("operator") Operator_Infix loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
        Some("payload") Leaf(String("=")) loc={ fname: "", lnum: 1, bol: 0, cnum: 6 },{ fname: "", lnum: 1, bol: 0, cnum: 7 } span=(6, 7)
    Some("expr") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
      Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
        Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
          Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
        Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
      Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
        Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
      Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
        Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
    Some("vis") Visibility_Default loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(9, 9)
    Some("declare") Flag_Declare loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(9, 9)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(9, 9)
    Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(9, 9)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(9, 9)
  Some("sep") Syntax_Token("SEMI") loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(9, 9)
    Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(9, 9)
  Some("item") Impl_Const loc={ fname: "", lnum: 2, bol: 10, cnum: 10 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(10, 21)
    Some("kw") Syntax_Token("const") loc={ fname: "", lnum: 2, bol: 10, cnum: 10 },{ fname: "", lnum: 2, bol: 10, cnum: 15 } span=(10, 15)
    Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 2, bol: 10, cnum: 16 },{ fname: "", lnum: 2, bol: 10, cnum: 17 } span=(16, 17)
      Some("name_value") Name_Identifier loc={ fname: "", lnum: 2, bol: 10, cnum: 16 },{ fname: "", lnum: 2, bol: 10, cnum: 17 } span=(16, 17)
        Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 2, bol: 10, cnum: 16 },{ fname: "", lnum: 2, bol: 10, cnum: 17 } span=(16, 17)
      Some("payload") Leaf(String("y")) loc={ fname: "", lnum: 2, bol: 10, cnum: 16 },{ fname: "", lnum: 2, bol: 10, cnum: 17 } span=(16, 17)
    Some("op") Syntax_Token("=") loc={ fname: "", lnum: 2, bol: 10, cnum: 18 },{ fname: "", lnum: 2, bol: 10, cnum: 19 } span=(18, 19)
      Some("operator") Operator_Infix loc={ fname: "", lnum: 2, bol: 10, cnum: 18 },{ fname: "", lnum: 2, bol: 10, cnum: 19 } span=(18, 19)
        Some("payload") Leaf(String("=")) loc={ fname: "", lnum: 2, bol: 10, cnum: 18 },{ fname: "", lnum: 2, bol: 10, cnum: 19 } span=(18, 19)
    Some("expr") Expr_Constant loc={ fname: "", lnum: 2, bol: 10, cnum: 20 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(20, 21)
      Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 2, bol: 10, cnum: 20 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(20, 21)
        Some("constant") Constant_Int loc={ fname: "", lnum: 2, bol: 10, cnum: 20 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(20, 21)
          Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 2, bol: 10, cnum: 20 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(20, 21)
        Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 2, bol: 10, cnum: 20 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(20, 21)
      Some("constant") Constant_Int loc={ fname: "", lnum: 2, bol: 10, cnum: 20 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(20, 21)
        Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 2, bol: 10, cnum: 20 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(20, 21)
      Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 2, bol: 10, cnum: 20 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(20, 21)
        Some("payload") Leaf(String("2")) loc={ fname: "", lnum: 2, bol: 10, cnum: 20 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(20, 21)
    Some("vis") Visibility_Default loc={ fname: "", lnum: 2, bol: 10, cnum: 21 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(21, 21)
    Some("declare") Flag_Declare loc={ fname: "", lnum: 2, bol: 10, cnum: 21 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(21, 21)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 2, bol: 10, cnum: 21 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(21, 21)
    Some("async") Flag_Async loc={ fname: "", lnum: 2, bol: 10, cnum: 21 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(21, 21)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 2, bol: 10, cnum: 21 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(21, 21)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 2, bol: 10, cnum: 21 },{ fname: "", lnum: 2, bol: 10, cnum: 21 } span=(21, 21)
[]
SOURCE "fn f() { fn nested(x) { x }; nested(1) }"
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(0, 40)
  Some("item") Impl_Function loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(0, 40)
    Some("kw") Syntax_Token("fn") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 2 } span=(0, 2)
    Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(3, 4)
      Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(3, 4)
        Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(3, 4)
      Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(3, 4)
    Some("params") List_ParameterList loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(4, 6)
      Some("open") Syntax_Token("(") 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("body") Expr_Block loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(7, 40)
      Some("body") List_BlockStatementList loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(7, 40)
        Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
        Some("item") Expr_LetFn loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(9, 27)
          Some("kw") Syntax_Token("fn") loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 11 } span=(9, 11)
          Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(12, 18)
            Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(12, 18)
              Some("payload") Leaf(String("nested")) loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(12, 18)
            Some("payload") Leaf(String("nested")) loc={ fname: "", lnum: 1, bol: 0, cnum: 12 },{ fname: "", lnum: 1, bol: 0, cnum: 18 } span=(12, 18)
          Some("params") List_ParameterList loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(18, 21)
            Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 18 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(18, 19)
            Some("item") Parameter_Positional loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
              Some("pattern") Pattern_Var 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("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
                  Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
                Some("semantic_name") Name_Binder 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("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 20 } span=(19, 20)
            Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 20 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(20, 21)
          Some("body") Expr_Block loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(22, 27)
            Some("body") List_BlockStatementList loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(22, 27)
              Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
              Some("item") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(24, 25)
                Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(24, 25)
                  Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(24, 25)
                    Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(24, 25)
                  Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(24, 25)
                Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(24, 25)
                  Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(24, 25)
                    Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(24, 25)
                      Some("payload") Leaf(String("x")) loc={ fname: "", lnum: 1, bol: 0, cnum: 24 },{ fname: "", lnum: 1, bol: 0, cnum: 25 } span=(24, 25)
              Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(26, 27)
            Some("group") Group_Brace loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 27 } span=(27, 27)
          Some("async") Flag_Async 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("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("item") Expr_Apply loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(29, 38)
          Some("func") Expr_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(29, 35)
            Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(29, 35)
              Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(29, 35)
                Some("payload") Leaf(String("nested")) loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(29, 35)
              Some("payload") Leaf(String("nested")) loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(29, 35)
            Some("semantic_name") Name_Var loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(29, 35)
              Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(29, 35)
                Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(29, 35)
                  Some("payload") Leaf(String("nested")) loc={ fname: "", lnum: 1, bol: 0, cnum: 29 },{ fname: "", lnum: 1, bol: 0, cnum: 35 } span=(29, 35)
          Some("arg") List_ArgumentList loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(35, 38)
            Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 35 },{ fname: "", lnum: 1, bol: 0, cnum: 36 } span=(35, 36)
            Some("item") Argument_Positional loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(36, 37)
              Some("expr") Expr_Constant loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(36, 37)
                Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(36, 37)
                  Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(36, 37)
                    Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(36, 37)
                  Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(36, 37)
                Some("constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(36, 37)
                  Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(36, 37)
                Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(36, 37)
                  Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 1, bol: 0, cnum: 36 },{ fname: "", lnum: 1, bol: 0, cnum: 37 } span=(36, 37)
            Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 37 },{ fname: "", lnum: 1, bol: 0, cnum: 38 } span=(37, 38)
        Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 39 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(39, 40)
      Some("group") Group_Brace loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(40, 40)
    Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(3, 4)
      Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(3, 4)
        Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(3, 4)
          Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 3 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(3, 4)
    Some("vis") Visibility_Default loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(40, 40)
    Some("declare") Flag_Declare loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(40, 40)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(40, 40)
    Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(40, 40)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(40, 40)
    Some("decl_body_kind") DeclBody_Expr loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(40, 40)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 40 },{ fname: "", lnum: 1, bol: 0, cnum: 40 } span=(40, 40)
[]
SOURCE "// 🐇\nasync test \"name\" { 1 } // trailing\n"
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 3, bol: 41, cnum: 41 } span=(0, 42)
  Some("trivia") Syntax_Token("COMMENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 5)
    Some("comment") Comment_Ownline loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 5)
      Some("content") Comment_Content loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 5)
        Some("payload") Leaf(String("// 🐇")) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 4 } span=(0, 5)
      Some("leading_blank_line") Comment_LeadingBlankLine loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 0 } span=(0, 0)
        Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 0 } span=(0, 0)
      Some("trailing_blank_line") Comment_TrailingBlankLine loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 0 } span=(0, 0)
        Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 0 } span=(0, 0)
      Some("consumed_by_docstring") Comment_ConsumedByDocstring loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 0 } span=(0, 0)
        Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 0 } span=(0, 0)
  Some("item") Impl_Test loc={ fname: "", lnum: 2, bol: 5, cnum: 5 },{ fname: "", lnum: 2, bol: 5, cnum: 28 } span=(6, 29)
    Some("kw") Syntax_Token("async") loc={ fname: "", lnum: 2, bol: 5, cnum: 5 },{ fname: "", lnum: 2, bol: 5, cnum: 10 } span=(6, 11)
      Some("flag") Flag_Async loc={ fname: "", lnum: 2, bol: 5, cnum: 5 },{ fname: "", lnum: 2, bol: 5, cnum: 5 } span=(6, 6)
        Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 2, bol: 5, cnum: 5 },{ fname: "", lnum: 2, bol: 5, cnum: 5 } span=(6, 6)
    Some("kw") Syntax_Token("test") loc={ fname: "", lnum: 2, bol: 5, cnum: 11 },{ fname: "", lnum: 2, bol: 5, cnum: 15 } span=(12, 16)
    Some("name") Syntax_Token("STRING") loc={ fname: "", lnum: 2, bol: 5, cnum: 16 },{ fname: "", lnum: 2, bol: 5, cnum: 22 } span=(17, 23)
      Some("constant") Constant_String loc={ fname: "", lnum: 2, bol: 5, cnum: 16 },{ fname: "", lnum: 2, bol: 5, cnum: 22 } span=(17, 23)
        Some("payload") Leaf(String("name")) loc={ fname: "", lnum: 2, bol: 5, cnum: 16 },{ fname: "", lnum: 2, bol: 5, cnum: 22 } span=(17, 23)
      Some("payload") Leaf(String("name")) loc={ fname: "", lnum: 2, bol: 5, cnum: 16 },{ fname: "", lnum: 2, bol: 5, cnum: 22 } span=(17, 23)
    Some("test_name") Name_Test loc={ fname: "", lnum: 2, bol: 5, cnum: 16 },{ fname: "", lnum: 2, bol: 5, cnum: 22 } span=(17, 23)
      Some("payload") Leaf(String("name")) loc={ fname: "", lnum: 2, bol: 5, cnum: 16 },{ fname: "", lnum: 2, bol: 5, cnum: 22 } span=(17, 23)
    Some("body") Expr_Block loc={ fname: "", lnum: 2, bol: 5, cnum: 23 },{ fname: "", lnum: 2, bol: 5, cnum: 28 } span=(24, 29)
      Some("body") List_BlockStatementList loc={ fname: "", lnum: 2, bol: 5, cnum: 23 },{ fname: "", lnum: 2, bol: 5, cnum: 28 } span=(24, 29)
        Some("open") Syntax_Token("{") loc={ fname: "", lnum: 2, bol: 5, cnum: 23 },{ fname: "", lnum: 2, bol: 5, cnum: 24 } span=(24, 25)
        Some("item") Expr_Constant loc={ fname: "", lnum: 2, bol: 5, cnum: 25 },{ fname: "", lnum: 2, bol: 5, cnum: 26 } span=(26, 27)
          Some("token") Syntax_Token("INT") loc={ fname: "", lnum: 2, bol: 5, cnum: 25 },{ fname: "", lnum: 2, bol: 5, cnum: 26 } span=(26, 27)
            Some("constant") Constant_Int loc={ fname: "", lnum: 2, bol: 5, cnum: 25 },{ fname: "", lnum: 2, bol: 5, cnum: 26 } span=(26, 27)
              Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 2, bol: 5, cnum: 25 },{ fname: "", lnum: 2, bol: 5, cnum: 26 } span=(26, 27)
            Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 2, bol: 5, cnum: 25 },{ fname: "", lnum: 2, bol: 5, cnum: 26 } span=(26, 27)
          Some("constant") Constant_Int loc={ fname: "", lnum: 2, bol: 5, cnum: 25 },{ fname: "", lnum: 2, bol: 5, cnum: 26 } span=(26, 27)
            Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 2, bol: 5, cnum: 25 },{ fname: "", lnum: 2, bol: 5, cnum: 26 } span=(26, 27)
          Some("semantic_constant") Constant_Int loc={ fname: "", lnum: 2, bol: 5, cnum: 25 },{ fname: "", lnum: 2, bol: 5, cnum: 26 } span=(26, 27)
            Some("payload") Leaf(String("1")) loc={ fname: "", lnum: 2, bol: 5, cnum: 25 },{ fname: "", lnum: 2, bol: 5, cnum: 26 } span=(26, 27)
        Some("close") Syntax_Token("}") loc={ fname: "", lnum: 2, bol: 5, cnum: 27 },{ fname: "", lnum: 2, bol: 5, cnum: 28 } span=(28, 29)
      Some("group") Group_Brace loc={ fname: "", lnum: 2, bol: 5, cnum: 28 },{ fname: "", lnum: 2, bol: 5, cnum: 28 } span=(29, 29)
    Some("vis") Visibility_Default loc={ fname: "", lnum: 2, bol: 5, cnum: 28 },{ fname: "", lnum: 2, bol: 5, cnum: 28 } span=(29, 29)
    Some("declare") Flag_Declare loc={ fname: "", lnum: 2, bol: 5, cnum: 28 },{ fname: "", lnum: 2, bol: 5, cnum: 28 } span=(29, 29)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 2, bol: 5, cnum: 28 },{ fname: "", lnum: 2, bol: 5, cnum: 28 } span=(29, 29)
    Some("async") Flag_Async loc={ fname: "", lnum: 2, bol: 5, cnum: 28 },{ fname: "", lnum: 2, bol: 5, cnum: 28 } span=(29, 29)
      Some("payload") Leaf(Bool(true)) loc={ fname: "", lnum: 2, bol: 5, cnum: 28 },{ fname: "", lnum: 2, bol: 5, cnum: 28 } span=(29, 29)
  Some("sep") Syntax_Token("SEMI") loc={ fname: "", lnum: 2, bol: 5, cnum: 28 },{ fname: "", lnum: 2, bol: 5, cnum: 28 } span=(29, 29)
    Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 2, bol: 5, cnum: 28 },{ fname: "", lnum: 2, bol: 5, cnum: 28 } span=(29, 29)
  Some("trivia") Syntax_Token("COMMENT") loc={ fname: "", lnum: 2, bol: 5, cnum: 29 },{ fname: "", lnum: 2, bol: 5, cnum: 40 } span=(30, 41)
    Some("comment") Comment_InlineTrailing loc={ fname: "", lnum: 2, bol: 5, cnum: 29 },{ fname: "", lnum: 2, bol: 5, cnum: 40 } span=(30, 41)
      Some("content") Comment_Content loc={ fname: "", lnum: 2, bol: 5, cnum: 29 },{ fname: "", lnum: 2, bol: 5, cnum: 40 } span=(30, 41)
        Some("payload") Leaf(String("// trailing")) loc={ fname: "", lnum: 2, bol: 5, cnum: 29 },{ fname: "", lnum: 2, bol: 5, cnum: 40 } span=(30, 41)
      Some("consumed_by_docstring") Comment_ConsumedByDocstring loc={ fname: "", lnum: 2, bol: 5, cnum: 29 },{ fname: "", lnum: 2, bol: 5, cnum: 29 } span=(30, 30)
        Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 2, bol: 5, cnum: 29 },{ fname: "", lnum: 2, bol: 5, cnum: 29 } span=(30, 30)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 3, bol: 41, cnum: 41 },{ fname: "", lnum: 3, bol: 41, cnum: 41 } span=(42, 42)
[]
SOURCE "pub fn f() = \"stub\""
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(0, 19)
  Some("item") Impl_Function loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(0, 19)
    Some("vis") Visibility_Pub loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(0, 3)
      Some("kw") Syntax_Token("pub") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(0, 3)
    Some("kw") Syntax_Token("fn") loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(4, 6)
    Some("name") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
      Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
        Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
      Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
    Some("params") List_ParameterList loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(8, 10)
      Some("open") Syntax_Token("(") loc={ fname: "", lnum: 1, bol: 0, cnum: 8 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(8, 9)
      Some("close") Syntax_Token(")") loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 10 } span=(9, 10)
    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("stub_token") Syntax_Token("STRING") loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(13, 19)
      Some("constant") Constant_String loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(13, 19)
        Some("payload") Leaf(String("stub")) loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(13, 19)
      Some("payload") Leaf(String("stub")) loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(13, 19)
    Some("stub") Stub_Code loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(13, 19)
      Some("payload") Leaf(String("stub")) loc={ fname: "", lnum: 1, bol: 0, cnum: 13 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(13, 19)
    Some("semantic_name") Name_Binder loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
      Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
        Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
          Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
    Some("declare") Flag_Declare loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(19, 19)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(19, 19)
    Some("async") Flag_Async loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(19, 19)
      Some("payload") Leaf(Bool(false)) loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(19, 19)
    Some("decl_body_kind") DeclBody_EmbeddedString loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(19, 19)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 19 },{ fname: "", lnum: 1, bol: 0, cnum: 19 } span=(19, 19)
[]
SOURCE "import { \"pkg\" }"
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(0, 16)
  Some("item") Impl_Import loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(0, 16)
    Some("kw") Syntax_Token("import") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 6 } span=(0, 6)
    Some("body") List_ImportPackageList loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(7, 16)
      Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 7 },{ fname: "", lnum: 1, bol: 0, cnum: 8 } span=(7, 8)
      Some("item") Clause_ImportPackage loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(9, 14)
        Some("path") Syntax_Token("STRING") loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(9, 14)
          Some("constant") Constant_String loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(9, 14)
            Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(9, 14)
          Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 9 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(9, 14)
      Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
  Some("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 16 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(16, 16)
[]
SOURCE "pub using @pkg { type T, f }"
None Impls loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(0, 28)
  Some("item") Impl_Using loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(0, 28)
    Some("vis") Visibility_Pub loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(0, 3)
      Some("kw") Syntax_Token("pub") loc={ fname: "", lnum: 1, bol: 0, cnum: 0 },{ fname: "", lnum: 1, bol: 0, cnum: 3 } span=(0, 3)
    Some("kw") Syntax_Token("using") loc={ fname: "", lnum: 1, bol: 0, cnum: 4 },{ fname: "", lnum: 1, bol: 0, cnum: 9 } span=(4, 9)
    Some("name") Syntax_Token("PACKAGE_NAME") loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(10, 14)
      Some("name_value") Name_Package loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(10, 14)
        Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(10, 14)
      Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(10, 14)
    Some("body") List_UsingItemList loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(15, 28)
      Some("open") Syntax_Token("{") loc={ fname: "", lnum: 1, bol: 0, cnum: 15 },{ fname: "", lnum: 1, bol: 0, cnum: 16 } span=(15, 16)
      Some("item") Clause_UsingItem loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(17, 23)
        Some("kind") Syntax_Token("type") loc={ fname: "", lnum: 1, bol: 0, cnum: 17 },{ fname: "", lnum: 1, bol: 0, cnum: 21 } span=(17, 21)
        Some("target") Syntax_Token("UIDENT") 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("T")) loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
          Some("payload") Leaf(String("T")) loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
        Some("semantic_name") Name_AliasTarget 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("T")) loc={ fname: "", lnum: 1, bol: 0, cnum: 22 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(22, 23)
        Some("using_kind") UsingKind_Type loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(23, 23)
      Some("sep") Syntax_Token(",") loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 24 } span=(23, 24)
        Some("trailing") TrailingMark_Comma loc={ fname: "", lnum: 1, bol: 0, cnum: 23 },{ fname: "", lnum: 1, bol: 0, cnum: 23 } span=(23, 23)
      Some("item") Clause_UsingItem loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(25, 26)
        Some("target") Syntax_Token("LIDENT") loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(25, 26)
          Some("name_value") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(25, 26)
            Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(25, 26)
          Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(25, 26)
        Some("semantic_name") Name_AliasTarget loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(25, 26)
          Some("long_ident") LongIdent_Ident loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(25, 26)
            Some("component") Name_Identifier loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(25, 26)
              Some("payload") Leaf(String("f")) loc={ fname: "", lnum: 1, bol: 0, cnum: 25 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(25, 26)
        Some("using_kind") UsingKind_Value loc={ fname: "", lnum: 1, bol: 0, cnum: 26 },{ fname: "", lnum: 1, bol: 0, cnum: 26 } span=(26, 26)
      Some("close") Syntax_Token("}") loc={ fname: "", lnum: 1, bol: 0, cnum: 27 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(27, 28)
    Some("semantic_name") Name_Label 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_Package loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(10, 14)
          Some("payload") Leaf(String("pkg")) loc={ fname: "", lnum: 1, bol: 0, cnum: 10 },{ fname: "", lnum: 1, bol: 0, cnum: 14 } span=(10, 14)
    Some("declare") Flag_Declare 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("async") Flag_Async 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("eof") Syntax_Token("EOF") loc={ fname: "", lnum: 1, bol: 0, cnum: 28 },{ fname: "", lnum: 1, bol: 0, cnum: 28 } span=(28, 28)
[]
