_TtBf80_ ---> Builtin.Float80
_TtBi32_ ---> Builtin.Int32
_TtBw ---> Builtin.Word
_TtBO ---> Builtin.UnknownObject
_TtBo ---> Builtin.NativeObject
_TtBp ---> Builtin.RawPointer
_TtBv4Bi8_ ---> Builtin.Vec4xInt8
_TtBv4Bf16_ ---> Builtin.Vec4xFloat16
_TtBv4Bp ---> Builtin.Vec4xRawPointer
_TtSa ---> Array
_TtSb ---> Bool
_TtSc ---> UnicodeScalar
_TtSd ---> Double
_TtSf ---> Float
_TtSi ---> Int
_TtSq ---> Optional
_TtSS ---> String
_TtSu ---> UInt
_TtGSPSi_ ---> UnsafePointer<Int>
_TtGSpSi_ ---> UnsafeMutablePointer<Int>
_TtSV ---> UnsafeRawPointer
_TtSv ---> UnsafeMutableRawPointer
_TtGSaSS_ ---> [String]
_TtGSqSS_ ---> String?
_TtGSQSS_ ---> String!
_TtGVs10DictionarySSSi_ ---> [String : Int]
_TtVs7CString ---> CString
_TtCSo8NSObject ---> NSObject
_TtO6Monads6Either ---> Either
_TtbSiSu ---> @convention(block) (_:)
_TtcSiSu ---> @convention(c) (_:)
_TtbTSiSc_Su ---> @convention(block) (_:_:)
_TtcTSiSc_Su ---> @convention(c) (_:_:)
_TtFSiSu ---> (_:)
_TtKSiSu ---> @autoclosure (_:)
_TtFSiFScSu ---> (_:)
_TtMSi ---> Int.Type
_TtP_ ---> Any
_TtP3foo3bar_ ---> bar
_TtP3foo3barS_3bas_ ---> bar & bas
_TtTP3foo3barS_3bas_PS1__PS1_S_3zimS0___ ---> (bar & bas, bas, bas & zim & bar)
_TtRSi ---> inout Int
_TtTSiSu_ ---> (Int, UInt)
_TttSiSu_ ---> (Int, UInt...)
_TtT3fooSi3barSu_ ---> (foo: Int, bar: UInt)
_TturFxx ---> <A>(_:)
_TtuzrFT_T_ ---> <>()
_Ttu__rFxqd__ ---> <A><A1>(_:)
_Ttu_z_rFxqd0__ ---> <A><><A2>(_:)
_Ttu0_rFxq_ ---> <A, B>(_:)
_TtuR_s8RunciblerFxwx5Mince ---> <A>(_:)
_TtuR_Cs22AbstractRuncingFactoryrFxx ---> <A>(_:)
_TtuR_s8Runciblew_5MincezxrFxx ---> <A>(_:)
_Tv3foo3barSi ---> bar
_TF3fooau3barSi ---> bar.unsafeMutableAddressor
_TF3foolu3barSi ---> bar.unsafeAddressor
_TF3fooaO3barSi ---> bar.owningMutableAddressor
_TF3foolO3barSi ---> bar.owningAddressor
_TF3fooao3barSi ---> bar.nativeOwningMutableAddressor
_TF3foolo3barSi ---> bar.nativeOwningAddressor
_TF3fooap3barSi ---> bar.nativePinningMutableAddressor
_TF3foolp3barSi ---> bar.nativePinningAddressor
_TF3foog3barSi ---> bar.getter
_TF3foos3barSi ---> bar.setter
_TFC3foo3bar3basfT3zimCS_3zim_T_ ---> bar.bas(zim:)
_TToFC3foo3bar3basfT3zimCS_3zim_T_ ---> @objc bar.bas(zim:)
_TTDFC3foo3bar3basfT3zimCS_3zim_T_ ---> dynamic bar.bas(zim:)
_TFC3foo3bar3basfT3zimCS_3zim_T_ ---> bar.bas(zim:)
_TF3foooi1pFTCS_3barVS_3bas_OS_3zim ---> + infix(_:_:)
_TF3foooP1xFTCS_3barVS_3bas_OS_3zim ---> ^ postfix(_:_:)
_TFC3foo3barCfT_S0_ ---> bar.__allocating_init()
_TFC3foo3barcfT_S0_ ---> bar.init()
_TFC3foo3barD ---> bar.__deallocating_deinit
_TFC3foo3bard ---> bar.deinit
_TMPC3foo3bar ---> generic type metadata pattern for bar
_TMnC3foo3bar ---> nominal type descriptor for bar
_TMmC3foo3bar ---> metaclass for bar
_TMC3foo3bar ---> type metadata for bar
_TwalC3foo3bar ---> allocateBuffer for bar
_TwcaC3foo3bar ---> assignWithCopy for bar
_TwtaC3foo3bar ---> assignWithTake for bar
_TwdeC3foo3bar ---> deallocateBuffer for bar
_TwxxC3foo3bar ---> destroy for bar
_TwXXC3foo3bar ---> destroyBuffer for bar
_TwCPC3foo3bar ---> initializeBufferWithCopyOfBuffer for bar
_TwCpC3foo3bar ---> initializeBufferWithCopy for bar
_TwcpC3foo3bar ---> initializeWithCopy for bar
_TwTKC3foo3bar ---> initializeBufferWithTakeOfBuffer for bar
_TwTkC3foo3bar ---> initializeBufferWithTake for bar
_TwtkC3foo3bar ---> initializeWithTake for bar
_TwprC3foo3bar ---> projectBuffer for bar
_TWVC3foo3bar ---> value witness table for bar
_TWvdvC3foo3bar3basSi ---> direct field offset for bar.bas
_TWvivC3foo3bar3basSi ---> indirect field offset for bar.bas
_TWPC3foo3barS_8barrables ---> protocol witness table for bar
_TWaC3foo3barS_8barrableS_ ---> protocol witness table accessor for bar
_TWlC3foo3barS0_S_8barrableS_ ---> lazy protocol witness table accessor for type bar and conformance bar
_TWLC3foo3barS0_S_8barrableS_ ---> lazy protocol witness table cache variable for type bar and conformance bar
_TWGC3foo3barS_8barrableS_ ---> generic protocol witness table for bar
_TWIC3foo3barS_8barrableS_ ---> instantiation function for generic protocol witness table for bar
_TFSCg5greenVSC5Color ---> green.getter
_TIF1t1fFT1iSi1sSS_T_A_ ---> default argument 0 of f(i:s:)
_TIF1t1fFT1iSi1sSS_T_A0_ ---> default argument 1 of f(i:s:)
_TFSqcfT_GSqx_ ---> Optional.init()
_TF21class_bound_protocols32class_bound_protocol_compositionFT1xPS_10ClassBoundS_13NotClassBound__PS0_S1__ ---> class_bound_protocol_composition(x:)
_TtZZ ---> _TtZZ
_TtB ---> _TtB
_TtBSi ---> _TtBSi
_TtBx ---> _TtBx
_TtC ---> _TtC
_TtT ---> _TtT
_TtTSi ---> _TtTSi
_TtQd_ ---> _TtQd_
_Tw ---> _Tw
_TWa ---> _TWa
_Twal ---> _Twal
_T ---> _T
_TTo ---> _TTo
_TC ---> _TC
_TM ---> _TM
_TM ---> _TM
_TW ---> _TW
_TWV ---> _TWV
_TWo ---> _TWo
_TWv ---> _TWv
_TWvd ---> _TWvd
_TWvi ---> _TWvi
_TWvx ---> _TWvx
_TtVCC4main3Foo4Ding3Str ---> Foo.Ding.Str
_TFVCC6nested6AClass12AnotherClass7AStruct9aFunctionfT1aSi_S2_ ---> AClass.AnotherClass.AStruct.aFunction(a:)
_TtXwC10attributes10SwiftClass ---> weak SwiftClass
_TtXoC10attributes10SwiftClass ---> unowned SwiftClass
_TtERR ---> <ERROR TYPE>
_TtGSqGSaC5sugar7MyClass__ ---> [MyClass]?
_TtGSaGSqC5sugar7MyClass__ ---> [MyClass?]
_TtaC9typealias5DWARF9DIEOffset ---> DWARF.DIEOffset
_Ttas3Int ---> Int
_TTRXFo_dSc_dSb_XFo_iSc_iSb_ ---> thunk for @callee_owned (@unowned UnicodeScalar) -> (@unowned Bool)
_TTRXFo_dSi_dGSqSi__XFo_iSi_iGSqSi__ ---> thunk for @callee_owned (@unowned Int) -> (@unowned Int?)
_TTRGrXFo_iV18switch_abstraction1A_ix_XFo_dS0__ix_ ---> thunk for @callee_owned (@in A) -> (@out A)
_TFCF5types1gFT1bSb_T_L0_10Collection3zimfT_T_ ---> zim() in Collection #2 in g(b:)
_TFF17capture_promotion22test_capture_promotionFT_FT_SiU_FT_Si_promote0 ---> closure #1 in test_capture_promotion()
_TFIVs8_Processi10_argumentsGSaSS_U_FT_GSaSS_ ---> _arguments in variable initialization expression of _Process
_TFIvVs8_Process10_argumentsGSaSS_iU_FT_GSaSS_ ---> closure #1 in variable initialization expression of _Process._arguments
_TFCSo1AE ---> A.__ivar_destroyer
_TFCSo1Ae ---> A.__ivar_initializer
_TTWC13call_protocol1CS_1PS_FS1_3foofT_Si ---> protocol witness for P.foo() in conformance C
_TTSg5Si___TFSqcfT_GSqx_ ---> specialized Optional.init()
_TTSg5SiSis3Foos_Sf___TFSqcfT_GSqx_ ---> specialized Optional.init()
_TTSg5Si_Sf___TFSqcfT_GSqx_ ---> specialized Optional.init()
_TTSg5Si_Sf___TFSqcfT_GSqx_ ---> specialized Optional.init()
_TTSgS ---> _TTSgS
_TTSg5S ---> _TTSg5S
_TTSgSi ---> _TTSgSi
_TTSg5Si ---> _TTSg5Si
_TTSgSi_ ---> _TTSgSi_
_TTSgSi__ ---> _TTSgSi__
_TTSgSiS_ ---> _TTSgSiS_
_TTSgSi__xyz ---> _TTSgSi__xyz
_TTSg5Si___TTSg5Si___TFSqcfT_GSqx_ ---> specialized Optional.init()
_TTSg5Vs5UInt8___TFV10specialize3XXXcfT1tx_GS0_x_ ---> specialized XXX.init(t:)
_TPA__TTRXFo_oSSoSS_dSb_XFo_iSSiSS_dSb_31 ---> partial apply for thunk for @callee_owned (@owned String, @owned String) -> (@unowned Bool)
_TiC4Meow5MyCls9subscriptFT1iSi_Sf ---> MyCls.subscript(i:)
_TF8manglingX22egbpdajGbuEbxfgehfvwxnFT_T_ ---> ليهمابتكلموشعربي؟()
_TF8manglingX24ihqwcrbEcvIaIdqgAFGpqjyeFT_T_ ---> 他们为什么不说中文()
_TF8manglingX27ihqwctvzcJBfGFJdrssDxIboAybFT_T_ ---> 他們爲什麽不說中文()
_TF8manglingX30Proprostnemluvesky_uybCEdmaEBaFT_T_ ---> Pročprostěnemluvíčesky()
_TF8manglingXoi7p_qcaDcFTSiSi_Si ---> «+» infix(_:_:)
_TF8manglingoi2qqFTSiSi_T_ ---> ?? infix(_:_:)
_TFE11ext_structAV11def_structA1A4testfT_T_ ---> A.test()
_TF13devirt_accessP5_DISC15getPrivateClassFT_CS_P5_DISC12PrivateClass ---> getPrivateClass()
_TF4mainP5_mainX3wxaFT_T_ ---> λ()
_TF4mainP5_main3abcFT_aS_P5_DISC3xyz ---> abc()
_TtPMP_ ---> Any.Type
_TFCs13_NSSwiftArray29canStoreElementsOfDynamicTypefPMP_Sb ---> _NSSwiftArray.canStoreElementsOfDynamicType(_:)
_TFCs13_NSSwiftArrayg17staticElementTypePMP_ ---> _NSSwiftArray.staticElementType.getter
_TFCs17_DictionaryMirrorg9valueTypePMP_ ---> _DictionaryMirror.valueType.getter
_TPA__TFFVs11GeneratorOfcuRd__s13GeneratorTyperFqd__GS_x_U_FT_GSqx_ ---> partial apply for closure #1 in GeneratorOf.init<A>(_:)
_TTSf1cl35_TFF7specgen6callerFSiT_U_FTSiSi_T_Si___TF7specgen12take_closureFFTSiSi_T_T_ ---> specialized take_closure(_:)
_TTSf1cl35_TFF7specgen6callerFSiT_U_FTSiSi_T_Si___TTSg5Si___TF7specgen12take_closureFFTSiSi_T_T_ ---> specialized take_closure(_:)
_TTSg5Si___TTSf1cl35_TFF7specgen6callerFSiT_U_FTSiSi_T_Si___TF7specgen12take_closureFFTSiSi_T_T_ ---> specialized take_closure(_:)
_TTSf1cpfr24_TF8capturep6helperFSiT__n___TTRXFo_dSi_dT__XFo_iSi_dT__ ---> specialized thunk for @callee_owned (@unowned Int) -> (@unowned ())
_TTSf1cpfr24_TF8capturep6helperFSiT__n___TTRXFo_dSi_DT__XFo_iSi_DT__ ---> specialized thunk for @callee_owned (@unowned Int) -> (@unowned_inner_pointer ())
_TTSf1cpi0_cpfl0_cpse0v4u123_cpg53globalinit_33_06E7F1D906492AE070936A9B58CBAE1C_token8_cpfr36_TFtest_capture_propagation2_closure___TF7specgen12take_closureFFTSiSi_T_T_ ---> specialized take_closure(_:)
_TTSf0gs___TFVs17_LegacyStringCore15_invariantCheckfT_T_ ---> specialized _LegacyStringCore._invariantCheck()
_TTSf2g___TTSf2s_d___TFVs17_LegacyStringCoreCfVs13_StringBufferS_ ---> specialized _LegacyStringCore.init(_:)
_TTSf2dg___TTSf2s_d___TFVs17_LegacyStringCoreCfVs13_StringBufferS_ ---> specialized _LegacyStringCore.init(_:)
_TTSf2dgs___TTSf2s_d___TFVs17_LegacyStringCoreCfVs13_StringBufferS_ ---> specialized _LegacyStringCore.init(_:)
_TTSf3d_i_d_i_d_i___TFVs17_LegacyStringCoreCfVs13_StringBufferS_ ---> specialized _LegacyStringCore.init(_:)
_TTSf3d_i_n_i_d_i___TFVs17_LegacyStringCoreCfVs13_StringBufferS_ ---> specialized _LegacyStringCore.init(_:)
_TFIZvV8mangling10HasVarInit5stateSbiu_KT_Sb ---> implicit closure #1 in variable initialization expression of static HasVarInit.state
_TFFV23interface_type_mangling18GenericTypeContext23closureInGenericContexturFqd__T_L_3fooFTqd__x_T_ ---> foo #1 (_:_:) in GenericTypeContext.closureInGenericContext<A>(_:)
_TFFV23interface_type_mangling18GenericTypeContextg31closureInGenericPropertyContextxL_3fooFT_x ---> foo #1 () in GenericTypeContext.closureInGenericPropertyContext.getter
_TTWurGV23interface_type_mangling18GenericTypeContextx_S_18GenericWitnessTestS_FS1_23closureInGenericContextu_RxS1_rfqd__T_ ---> protocol witness for GenericWitnessTest.closureInGenericContext<A>(_:) in conformance <A> GenericTypeContext<A>
_TTWurGV23interface_type_mangling18GenericTypeContextx_S_18GenericWitnessTestS_FS1_g31closureInGenericPropertyContextwx3Tee ---> protocol witness for GenericWitnessTest.closureInGenericPropertyContext.getter in conformance <A> GenericTypeContext<A>
_TTWurGV23interface_type_mangling18GenericTypeContextx_S_18GenericWitnessTestS_FS1_16twoParamsAtDepthu0_RxS1_rfTqd__1yqd_0__T_ ---> protocol witness for GenericWitnessTest.twoParamsAtDepth<A, B>(_:y:) in conformance <A> GenericTypeContext<A>
_TFC3red11BaseClassEHcfzT1aSi_S0_ ---> BaseClassEH.init(a:)
_TFe27mangling_generic_extensionsR_S_8RunciblerVS_3Foog1aSi ---> Foo<A>.a.getter
_TFe27mangling_generic_extensionsR_S_8RunciblerVS_3Foog1bx ---> Foo<A>.b.getter
_TTRXFo_iT__iT_zoPs5Error__XFo__dT_zoPS___ ---> thunk for @callee_owned (@in ()) -> (@out (), @error @owned Error)
_TFE1a ---> _TFE1a
_TFC4testP33_83378C430F65473055F1BD53F3ADCDB71C5doFoofT_T_ ---> C.doFoo()
_TTRXFo_oCSo13SKPhysicsBodydVSC7CGPointdVSC8CGVectordGSpV10ObjectiveC8ObjCBool___XFdCb_dS_dS0_dS1_dGSpS3____ ---> thunk for @callee_owned (@owned SKPhysicsBody, @unowned CGPoint, @unowned CGVector, @unowned UnsafeMutablePointer<ObjCBool>) -> ()
_T0So13SKPhysicsBodyCSC7CGPointVSC8CGVectorVSpy10ObjectiveC8ObjCBoolVGIxxyyy_AbdFSpyAIGIyByyyy_TR ---> thunk for @callee_owned (@owned SKPhysicsBody, @unowned CGPoint, @unowned CGVector, @unowned UnsafeMutablePointer<ObjCBool>) -> ()
_T04main1_yyF ---> _()
_T03abc6testitySiFTm ---> testit(_:)
_T04main4TestCACSi1x_tc6_PRIV_Llfc ---> Test.init(x:)
_$S3abc6testityySiFTm ---> testit(_:)
_$S4main4TestC1xACSi_tc6_PRIV_Llfc ---> Test.init(x:)
_TTSf0os___TFVs17_LegacyStringCore15_invariantCheckfT_T_ ---> specialized _LegacyStringCore._invariantCheck()
_TTSf2o___TTSf2s_d___TFVs17_LegacyStringCoreCfVs13_StringBufferS_ ---> specialized _LegacyStringCore.init(_:)
_TTSf2do___TTSf2s_d___TFVs17_LegacyStringCoreCfVs13_StringBufferS_ ---> specialized _LegacyStringCore.init(_:)
_TTSf2dos___TTSf2s_d___TFVs17_LegacyStringCoreCfVs13_StringBufferS_ ---> specialized _LegacyStringCore.init(_:)
