SOURCE_FILE
  FN
    FN_KW "fn"
    WHITESPACE " "
    NAME
      IDENT "foo"
    GENERIC_PARAM_LIST
      L_ANGLE "<"
      TYPE_PARAM
        NAME
          IDENT "T"
      R_ANGLE ">"
    PARAM_LIST
      L_PAREN "("
      R_PAREN ")"
    WHITESPACE "\n"
    WHERE_CLAUSE
      WHERE_KW "where"
      WHITESPACE "\n    "
      WHERE_PRED
        PATH_TYPE
          PATH
            PATH
              PATH_SEGMENT
                NAME_REF
                  IDENT "T"
            COLON2 "::"
            PATH_SEGMENT
              NAME_REF
                IDENT "method"
              RETURN_TYPE_SYNTAX
                L_PAREN "("
                DOT2 ".."
                R_PAREN ")"
        COLON ":"
        WHITESPACE " "
        TYPE_BOUND_LIST
          TYPE_BOUND
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    IDENT "Send"
      COMMA ","
      WHITESPACE "\n    "
      WHERE_PRED
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                IDENT "method"
              RETURN_TYPE_SYNTAX
                L_PAREN "("
                DOT2 ".."
                R_PAREN ")"
        COLON ":"
        WHITESPACE " "
        TYPE_BOUND_LIST
          TYPE_BOUND
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    IDENT "Send"
      COMMA ","
      WHITESPACE "\n    "
      WHERE_PRED
        PATH_TYPE
          PATH
            PATH_SEGMENT
              NAME_REF
                IDENT "method"
              RETURN_TYPE_SYNTAX
                COLON2 "::"
                L_PAREN "("
                DOT2 ".."
                R_PAREN ")"
        COLON ":"
        WHITESPACE " "
        TYPE_BOUND_LIST
          TYPE_BOUND
            PATH_TYPE
              PATH
                PATH_SEGMENT
                  NAME_REF
                    IDENT "Send"
      COMMA ","
    WHITESPACE "\n"
    BLOCK_EXPR
      STMT_LIST
        L_CURLY "{"
        R_CURLY "}"
  WHITESPACE "\n"
