SOURCE_FILE
  TYPE_ALIAS
    TYPE_KW "type"
    WHITESPACE " "
    NAME
      IDENT "A"
    WHITESPACE " "
    EQ "="
    WHITESPACE " "
    PATH_TYPE
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "S"
          GENERIC_ARG_LIST
            L_ANGLE "<"
            TYPE_ARG
              PATH_TYPE
                PATH
                  PATH_SEGMENT
                    NAME_REF
                      IDENT "Fn"
                    PARAM_LIST
                      L_PAREN "("
                      PARAM
                        PATH_TYPE
                          PATH
                            PATH_SEGMENT
                              NAME_REF
                                IDENT "i32"
                      R_PAREN ")"
            R_ANGLE ">"
    SEMICOLON ";"
  WHITESPACE "\n"
  TYPE_ALIAS
    TYPE_KW "type"
    WHITESPACE " "
    NAME
      IDENT "A"
    WHITESPACE " "
    EQ "="
    WHITESPACE " "
    PATH_TYPE
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "S"
          GENERIC_ARG_LIST
            L_ANGLE "<"
            TYPE_ARG
              DYN_TRAIT_TYPE
                TYPE_BOUND_LIST
                  TYPE_BOUND
                    PATH_TYPE
                      PATH
                        PATH_SEGMENT
                          NAME_REF
                            IDENT "Fn"
                          PARAM_LIST
                            L_PAREN "("
                            PARAM
                              PATH_TYPE
                                PATH
                                  PATH_SEGMENT
                                    NAME_REF
                                      IDENT "i32"
                            R_PAREN ")"
                  WHITESPACE " "
                  PLUS "+"
                  WHITESPACE " "
                  TYPE_BOUND
                    PATH_TYPE
                      PATH
                        PATH_SEGMENT
                          NAME_REF
                            IDENT "Send"
            R_ANGLE ">"
    SEMICOLON ";"
  WHITESPACE "\n"
  TYPE_ALIAS
    TYPE_KW "type"
    WHITESPACE " "
    NAME
      IDENT "B"
    WHITESPACE " "
    EQ "="
    WHITESPACE " "
    PATH_TYPE
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "S"
          GENERIC_ARG_LIST
            L_ANGLE "<"
            TYPE_ARG
              PATH_TYPE
                PATH
                  PATH_SEGMENT
                    NAME_REF
                      IDENT "Fn"
                    PARAM_LIST
                      L_PAREN "("
                      PARAM
                        PATH_TYPE
                          PATH
                            PATH_SEGMENT
                              NAME_REF
                                IDENT "i32"
                      R_PAREN ")"
                    WHITESPACE " "
                    RET_TYPE
                      THIN_ARROW "->"
                      WHITESPACE " "
                      PATH_TYPE
                        PATH
                          PATH_SEGMENT
                            NAME_REF
                              IDENT "i32"
            R_ANGLE ">"
    SEMICOLON ";"
  WHITESPACE "\n"
  TYPE_ALIAS
    TYPE_KW "type"
    WHITESPACE " "
    NAME
      IDENT "C"
    WHITESPACE " "
    EQ "="
    WHITESPACE " "
    PATH_TYPE
      PATH
        PATH_SEGMENT
          NAME_REF
            IDENT "S"
          GENERIC_ARG_LIST
            L_ANGLE "<"
            TYPE_ARG
              DYN_TRAIT_TYPE
                TYPE_BOUND_LIST
                  TYPE_BOUND
                    PATH_TYPE
                      PATH
                        PATH_SEGMENT
                          NAME_REF
                            IDENT "Fn"
                          PARAM_LIST
                            L_PAREN "("
                            PARAM
                              PATH_TYPE
                                PATH
                                  PATH_SEGMENT
                                    NAME_REF
                                      IDENT "i32"
                            R_PAREN ")"
                          WHITESPACE " "
                          RET_TYPE
                            THIN_ARROW "->"
                            WHITESPACE " "
                            PATH_TYPE
                              PATH
                                PATH_SEGMENT
                                  NAME_REF
                                    IDENT "i32"
                  WHITESPACE " "
                  PLUS "+"
                  WHITESPACE " "
                  TYPE_BOUND
                    PATH_TYPE
                      PATH
                        PATH_SEGMENT
                          NAME_REF
                            IDENT "Send"
            R_ANGLE ">"
    SEMICOLON ";"
  WHITESPACE "\n"
