SOURCE_FILE
  IMPL
    IMPL_KW "impl"
    WHITESPACE " "
    PATH_TYPE
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "S"
    WHITESPACE " "
    ASSOC_ITEM_LIST
      L_CURLY "{"
      WHITESPACE "\n    "
      FN
        FN_KW "fn"
        WHITESPACE " "
        NAME
          IDENT "a"
        PARAM_LIST
          L_PAREN "("
          SELF_PARAM
            NAME
              SELF_KW "self"
            COLON ":"
            WHITESPACE " "
            REF_TYPE
              AMP "&"
              PATH_TYPE
                PATH
                  PATH_SEGMENT
                    NAME_REF
                      SELF_TYPE_KW "Self"
          R_PAREN ")"
        WHITESPACE " "
        BLOCK_EXPR
          STMT_LIST
            L_CURLY "{"
            R_CURLY "}"
      WHITESPACE "\n    "
      FN
        FN_KW "fn"
        WHITESPACE " "
        NAME
          IDENT "b"
        PARAM_LIST
          L_PAREN "("
          SELF_PARAM
            MUT_KW "mut"
            WHITESPACE " "
            NAME
              SELF_KW "self"
            COLON ":"
            WHITESPACE " "
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    IDENT "Box"
                  GENERIC_ARG_LIST
                    L_ANGLE "<"
                    TYPE_ARG
                      PATH_TYPE
                        PATH
                          PATH_SEGMENT
                            NAME_REF
                              SELF_TYPE_KW "Self"
                    R_ANGLE ">"
          R_PAREN ")"
        WHITESPACE " "
        BLOCK_EXPR
          STMT_LIST
            L_CURLY "{"
            R_CURLY "}"
      WHITESPACE "\n"
      R_CURLY "}"
  WHITESPACE "\n"
