SOURCE_FILE
  FN
    FN_KW "fn"
    WHITESPACE " "
    NAME
      IDENT "foo"
    PARAM_LIST
      L_PAREN "("
      R_PAREN ")"
    WHITESPACE " "
    BLOCK_EXPR
      STMT_LIST
        L_CURLY "{"
        WHITESPACE "\n    "
        LET_STMT
          LET_KW "let"
          WHITESPACE " "
          RECORD_PAT
            PATH
              PATH_SEGMENT
                NAME_REF
                  IDENT "S"
            WHITESPACE " "
            RECORD_PAT_FIELD_LIST
              L_CURLY "{"
              R_CURLY "}"
          WHITESPACE " "
          EQ "="
          WHITESPACE " "
          TUPLE_EXPR
            L_PAREN "("
            R_PAREN ")"
          SEMICOLON ";"
        WHITESPACE "\n    "
        LET_STMT
          LET_KW "let"
          WHITESPACE " "
          RECORD_PAT
            PATH
              PATH_SEGMENT
                NAME_REF
                  IDENT "S"
            WHITESPACE " "
            RECORD_PAT_FIELD_LIST
              L_CURLY "{"
              WHITESPACE " "
              RECORD_PAT_FIELD
                IDENT_PAT
                  NAME
                    IDENT "f"
              COMMA ","
              WHITESPACE " "
              RECORD_PAT_FIELD
                IDENT_PAT
                  REF_KW "ref"
                  WHITESPACE " "
                  MUT_KW "mut"
                  WHITESPACE " "
                  NAME
                    IDENT "g"
              WHITESPACE " "
              R_CURLY "}"
          WHITESPACE " "
          EQ "="
          WHITESPACE " "
          TUPLE_EXPR
            L_PAREN "("
            R_PAREN ")"
          SEMICOLON ";"
        WHITESPACE "\n    "
        LET_STMT
          LET_KW "let"
          WHITESPACE " "
          RECORD_PAT
            PATH
              PATH_SEGMENT
                NAME_REF
                  IDENT "S"
            WHITESPACE " "
            RECORD_PAT_FIELD_LIST
              L_CURLY "{"
              WHITESPACE " "
              RECORD_PAT_FIELD
                NAME_REF
                  IDENT "h"
                COLON ":"
                WHITESPACE " "
                WILDCARD_PAT
                  UNDERSCORE "_"
              COMMA ","
              WHITESPACE " "
              REST_PAT
                DOT2 ".."
              R_CURLY "}"
          WHITESPACE " "
          EQ "="
          WHITESPACE " "
          TUPLE_EXPR
            L_PAREN "("
            R_PAREN ")"
          SEMICOLON ";"
        WHITESPACE "\n    "
        LET_STMT
          LET_KW "let"
          WHITESPACE " "
          RECORD_PAT
            PATH
              PATH_SEGMENT
                NAME_REF
                  IDENT "S"
            WHITESPACE " "
            RECORD_PAT_FIELD_LIST
              L_CURLY "{"
              WHITESPACE " "
              RECORD_PAT_FIELD
                NAME_REF
                  IDENT "h"
                COLON ":"
                WHITESPACE " "
                WILDCARD_PAT
                  UNDERSCORE "_"
              COMMA ","
              WHITESPACE " "
              R_CURLY "}"
          WHITESPACE " "
          EQ "="
          WHITESPACE " "
          TUPLE_EXPR
            L_PAREN "("
            R_PAREN ")"
          SEMICOLON ";"
        WHITESPACE "\n    "
        LET_STMT
          LET_KW "let"
          WHITESPACE " "
          RECORD_PAT
            PATH
              PATH_SEGMENT
                NAME_REF
                  IDENT "S"
            WHITESPACE " "
            RECORD_PAT_FIELD_LIST
              L_CURLY "{"
              WHITESPACE " "
              REST_PAT
                ATTR
                  POUND "#"
                  L_BRACK "["
                  CFG_META
                    CFG_KW "cfg"
                    L_PAREN "("
                    CFG_COMPOSITE
                      IDENT "any"
                      L_PAREN "("
                      R_PAREN ")"
                    R_PAREN ")"
                  R_BRACK "]"
                WHITESPACE " "
                DOT2 ".."
              WHITESPACE " "
              R_CURLY "}"
          WHITESPACE " "
          EQ "="
          WHITESPACE " "
          TUPLE_EXPR
            L_PAREN "("
            R_PAREN ")"
          SEMICOLON ";"
        WHITESPACE "\n"
        R_CURLY "}"
  WHITESPACE "\n"
