SOURCE_FILE
  STRUCT
    STRUCT_KW "struct"
    WHITESPACE " "
    NAME
      IDENT "S"
    GENERIC_PARAM_LIST
      L_ANGLE "<"
      TYPE_PARAM
        NAME
          IDENT "T"
        COLON ":"
        WHITESPACE " "
        TYPE_BOUND_LIST
          TYPE_BOUND
            LIFETIME
              LIFETIME_IDENT "'a"
          WHITESPACE " "
          PLUS "+"
          WHITESPACE " "
          TYPE_BOUND
            QUESTION "?"
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    IDENT "Sized"
          WHITESPACE " "
          PLUS "+"
          WHITESPACE " "
          TYPE_BOUND
            L_PAREN "("
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    IDENT "Copy"
            R_PAREN ")"
          WHITESPACE " "
          PLUS "+"
          WHITESPACE " "
          TYPE_BOUND
            TILDE "~"
            CONST_KW "const"
            WHITESPACE " "
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    IDENT "Drop"
      R_ANGLE ">"
    SEMICOLON ";"
  WHITESPACE "\n"
