Fix error on checking recursive type var bounds (Recursion root)

This commit is contained in:
Grigorii Kirgizov 2020-06-25 12:02:42 +03:00
parent ebddf94c42
commit 424b473b8d
1 changed files with 284 additions and 344 deletions

View File

@ -44176,9 +44176,9 @@
</node>
</node>
<node concept="3clFbS" id="554EtBHVtoA" role="3hEL4E">
<node concept="3Aqczg" id="554EtBHVuby" role="3cqZAp">
<node concept="3A8Hvi" id="554EtBHVubz" role="3Aqpz8">
<node concept="9KH4l" id="554EtBHVub_" role="3A8w4Q">
<node concept="3Aqczg" id="3vTJNooXrOE" role="3cqZAp">
<node concept="3sO8UW" id="3vTJNooXrO$" role="3Aqpz8">
<node concept="9KH4l" id="554EtBHVub_" role="3sO8UZ">
<node concept="37jhX" id="554EtBHVulo" role="9KHbC">
<node concept="1nq8_$" id="554EtBHVuln" role="37jj2">
<node concept="a7P8L" id="554EtBHVulm" role="1nq8_t">
@ -44187,7 +44187,7 @@
</node>
</node>
</node>
<node concept="ns1u0" id="554EtBHVubE" role="3A8wtg">
<node concept="ns1u0" id="554EtBHVubE" role="3sO8UT">
<ref role="ns1xF" node="4btN1w5A0eS" resolve="genDecl" />
<node concept="nsMwS" id="554EtBHVubF" role="ns1xD">
<ref role="nsMwP" node="4btN1w5A0F6" resolve="tvars" />
@ -44603,9 +44603,9 @@
</node>
</node>
<node concept="3clFbH" id="53tmmMslPNX" role="3cqZAp" />
<node concept="3Aqczg" id="53tmmMslPNY" role="3cqZAp">
<node concept="3A8Hvi" id="53tmmMslPNZ" role="3Aqpz8">
<node concept="9KH4l" id="53tmmMslPO0" role="3A8w4Q">
<node concept="3Aqczg" id="3vTJNooXr4i" role="3cqZAp">
<node concept="3sO8UW" id="3vTJNooXr4c" role="3Aqpz8">
<node concept="9KH4l" id="53tmmMslPO0" role="3sO8UZ">
<node concept="37jhX" id="53tmmMslPO1" role="9KHbC">
<node concept="1nq8_$" id="53tmmMslPO2" role="37jj2">
<node concept="a7P8L" id="53tmmMslPO3" role="1nq8_t">
@ -44614,7 +44614,7 @@
</node>
</node>
</node>
<node concept="ns1u0" id="53tmmMslPO4" role="3A8wtg">
<node concept="ns1u0" id="53tmmMslPO4" role="3sO8UT">
<ref role="ns1xF" node="4btN1w5A0eS" resolve="genDecl" />
<node concept="nsMwS" id="53tmmMslPO5" role="ns1xD">
<ref role="nsMwP" node="5Oz70LKeVis" resolve="typeScheme" />
@ -44661,182 +44661,8 @@
</node>
<node concept="3clFbH" id="53tmmMslPO_" role="3cqZAp" />
<node concept="3clFbJ" id="53tmmMslPOA" role="3cqZAp">
<node concept="3clFbS" id="53tmmMslPOB" role="3clFbx">
<node concept="3X$Joe" id="53tmmMslPOC" role="3cqZAp">
<node concept="aZer4" id="53tmmMslPOD" role="3XD1gS">
<property role="TrG5h" value="TyArgs" />
<node concept="2OqwBi" id="53tmmMslPOE" role="3gj$pD">
<node concept="3hN9Ij" id="53tmmMslPOF" role="2Oq$k0">
<ref role="3hLkJx" node="53tmmMs9igS" resolve="tyArgs" />
</node>
<node concept="34oBXx" id="53tmmMslPOG" role="2OqNvi" />
</node>
</node>
<node concept="aZer4" id="53tmmMslPOH" role="3XD1gS">
<property role="TrG5h" value="TyArgCaps" />
<node concept="2OqwBi" id="53tmmMslPOI" role="3gj$pD">
<node concept="3hN9Ij" id="53tmmMslPOJ" role="2Oq$k0">
<ref role="3hLkJx" node="53tmmMs9igS" resolve="tyArgs" />
</node>
<node concept="34oBXx" id="53tmmMslPOK" role="2OqNvi" />
</node>
</node>
<node concept="32pEOW" id="53tmmMslPOL" role="3vLBG7" />
</node>
<node concept="3cpWs8" id="53tmmMsDKhQ" role="3cqZAp">
<node concept="3cpWsn" id="53tmmMsDKhT" role="3cpWs9">
<property role="TrG5h" value="allowUnchecked" />
<node concept="10P_77" id="53tmmMsDKhO" role="1tU5fm" />
<node concept="3K4zz7" id="53tmmMsJGjX" role="33vP2m">
<node concept="3hN9Ij" id="53tmmMsJHhf" role="3K4E3e">
<ref role="3hLkJx" node="53tmmMsDKj7" resolve="allowUncheckedConversions" />
</node>
<node concept="3clFbT" id="53tmmMsJHK0" role="3K4GZi" />
<node concept="3y3z36" id="53tmmMsJFHH" role="3K4Cdx">
<node concept="10Nm6u" id="53tmmMsJGj_" role="3uHU7w" />
<node concept="3hN9Ij" id="53tmmMsJEWP" role="3uHU7B">
<ref role="3hLkJx" node="53tmmMsDKj7" resolve="allowUncheckedConversions" />
</node>
</node>
</node>
</node>
</node>
<node concept="1Dw8fO" id="53tmmMslPOM" role="3cqZAp">
<node concept="3clFbS" id="53tmmMslPON" role="2LFqv$">
<node concept="3Aqczg" id="53tmmMslPOO" role="3cqZAp">
<node concept="3jbYBd" id="53tmmMslPOP" role="3Aqpz8">
<ref role="3jbY9l" node="5itBwMau8m1" resolve="lift" />
<node concept="1y4W85" id="53tmmMslPOQ" role="3jbY8P">
<node concept="37vLTw" id="53tmmMslPOR" role="1y58nS">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
<node concept="3hN9Ij" id="53tmmMslPOS" role="1y566C">
<ref role="3hLkJx" node="53tmmMs9igS" resolve="tyArgs" />
</node>
</node>
<node concept="a7P8L" id="53tmmMslPOT" role="3jbY8V">
<ref role="a7OzE" node="53tmmMslPOD" resolve="TyArgs" />
<node concept="37vLTw" id="53tmmMslPOU" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
<node concept="3jhG_Y" id="53tmmMslPOV" role="3jhGvd">
<node concept="3jhG_Z" id="53tmmMslPOW" role="3jhGob">
<ref role="3jhG_U" node="5itBwMaLICh" resolve="substitution" />
<node concept="37vLTw" id="53tmmMslPOX" role="3jhG_S">
<ref role="3cqZAo" node="53tmmMslPNn" resolve="subs" />
</node>
</node>
<node concept="3jhG_Z" id="53tmmMslPOY" role="3jhGob">
<ref role="3jhG_U" node="5itBwMb2a1b" resolve="allowUncheckedConversion" />
<node concept="37vLTw" id="53tmmMsDL_i" role="3jhG_S">
<ref role="3cqZAo" node="53tmmMsDKhT" resolve="allowUnchecked" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="53tmmMslPP0" role="3cqZAp" />
<node concept="3Aqczg" id="53tmmMslPP1" role="3cqZAp">
<node concept="3Aqt3T" id="53tmmMslPP2" role="3Aqpz8">
<ref role="3AqCNq" node="3wxtToEiJ2j" resolve="captureBound" />
<node concept="a7P8L" id="53tmmMslPP3" role="3AunhB">
<ref role="a7OzE" node="53tmmMslPOH" resolve="TyArgCaps" />
<node concept="37vLTw" id="53tmmMslPP4" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
<node concept="a7P8L" id="53tmmMslPP5" role="3AunhB">
<ref role="a7OzE" node="53tmmMslPOD" resolve="TyArgs" />
<node concept="37vLTw" id="53tmmMslPP6" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
<node concept="a7P8L" id="53tmmMslPP7" role="3AunhB">
<ref role="a7OzE" node="53tmmMs9ij7" resolve="Bounds" />
<node concept="37vLTw" id="53tmmMslPP8" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
</node>
</node>
<node concept="3Aqczg" id="53tmmMslPP9" role="3cqZAp">
<node concept="3Aqt3T" id="53tmmMslPPa" role="3Aqpz8">
<ref role="3AqCNq" node="3MG3BxoG13Q" resolve="convertsToSafe" />
<node concept="a7P8L" id="53tmmMslPPb" role="3AunhB">
<ref role="a7OzE" node="53tmmMslPOH" resolve="TyArgCaps" />
<node concept="37vLTw" id="53tmmMslPPc" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
<node concept="a7P8L" id="53tmmMslPPd" role="3AunhB">
<ref role="a7OzE" node="53tmmMs9ij7" resolve="Bounds" />
<node concept="37vLTw" id="53tmmMslPPe" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
<node concept="37jhX" id="53tmmMslPPf" role="3AunhB">
<node concept="1y4W85" id="53tmmMslPPg" role="37jj2">
<node concept="37vLTw" id="53tmmMslPPh" role="1y58nS">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
<node concept="3hN9Ij" id="53tmmMslPPi" role="1y566C">
<ref role="3hLkJx" node="53tmmMs9igS" resolve="tyArgs" />
</node>
</node>
</node>
<node concept="HKQnh" id="53tmmMslPPj" role="3AunhB">
<node concept="Xl_RD" id="53tmmMslPPk" role="HKQng">
<property role="Xl_RC" value="wrong substitute" />
</node>
</node>
</node>
</node>
<node concept="3Aqczg" id="53tmmMslPPl" role="3cqZAp">
<node concept="3A8Hvi" id="53tmmMslPPm" role="3Aqpz8">
<node concept="a7P8L" id="53tmmMslPPn" role="3A8wtg">
<ref role="a7OzE" node="53tmmMs9ij0" resolve="InstTyVars" />
<node concept="37vLTw" id="53tmmMslPPo" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
<node concept="a7P8L" id="53tmmMslPPp" role="3A8w4Q">
<ref role="a7OzE" node="53tmmMslPOH" resolve="TyArgCaps" />
<node concept="37vLTw" id="53tmmMslPPq" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWsn" id="53tmmMslPPr" role="1Duv9x">
<property role="TrG5h" value="i" />
<node concept="10Oyi0" id="53tmmMslPPs" role="1tU5fm" />
<node concept="3cmrfG" id="53tmmMslPPt" role="33vP2m">
<property role="3cmrfH" value="0" />
</node>
</node>
<node concept="3eOVzh" id="53tmmMslPPu" role="1Dwp0S">
<node concept="2OqwBi" id="53tmmMslPPv" role="3uHU7w">
<node concept="3hN9Ij" id="53tmmMslPPw" role="2Oq$k0">
<ref role="3hLkJx" node="53tmmMs9igS" resolve="tyArgs" />
</node>
<node concept="34oBXx" id="53tmmMslPPx" role="2OqNvi" />
</node>
<node concept="37vLTw" id="53tmmMslPPy" role="3uHU7B">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
<node concept="3uNrnE" id="53tmmMslPPz" role="1Dwrff">
<node concept="37vLTw" id="53tmmMslPP$" role="2$L3a6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
</node>
<node concept="3clFbH" id="53tmmMtqdDS" role="3cqZAp" />
</node>
<node concept="3eNFk2" id="53tmmMsU1OD" role="3eNLev">
<node concept="3clFbS" id="53tmmMsU1OF" role="3eOfB_">
<node concept="9aQIb" id="3vTJNooNZLE" role="9aQIa">
<node concept="3clFbS" id="53tmmMsU1OF" role="9aQI4">
<node concept="3SKdUt" id="53tmmMtpJiK" role="3cqZAp">
<node concept="1PaTwC" id="53tmmMtpJiL" role="1aUNEU">
<node concept="3oM_SD" id="53tmmMtpJiM" role="1PaTwD">
@ -44898,183 +44724,297 @@
<ref role="3cqZAo" node="53tmmMslPMt" resolve="tvds" />
</node>
</node>
<node concept="3clFbH" id="53tmmMtqdF0" role="3cqZAp" />
</node>
<node concept="3clFbC" id="53tmmMtpIeQ" role="3eO9$A">
<node concept="10Nm6u" id="53tmmMtpJif" role="3uHU7w" />
<node concept="3hN9Ij" id="53tmmMtpAJc" role="3uHU7B">
<ref role="3hLkJx" node="53tmmMs9igS" resolve="tyArgs" />
</node>
</node>
</node>
<node concept="1Wc70l" id="53tmmMtq4_p" role="3clFbw">
<node concept="3y3z36" id="53tmmMtq6K3" role="3uHU7B">
<node concept="10Nm6u" id="53tmmMtq7Ok" role="3uHU7w" />
<node concept="3hN9Ij" id="53tmmMtq4A$" role="3uHU7B">
<ref role="3hLkJx" node="53tmmMs9igS" resolve="tyArgs" />
</node>
</node>
<node concept="2OqwBi" id="53tmmMslPP_" role="3uHU7w">
<node concept="3hN9Ij" id="53tmmMslPPA" role="2Oq$k0">
<ref role="3hLkJx" node="53tmmMs9igS" resolve="tyArgs" />
</node>
<node concept="3GX2aA" id="53tmmMslPPB" role="2OqNvi" />
<node concept="3y3z36" id="3vTJNooNZLB" role="3clFbw">
<node concept="3hN9Ij" id="53tmmMtpAJc" role="3uHU7B">
<ref role="3hLkJx" node="53tmmMs9igS" resolve="tyArgs" />
</node>
<node concept="10Nm6u" id="53tmmMtpJif" role="3uHU7w" />
</node>
<node concept="9aQIb" id="53tmmMtpAsA" role="9aQIa">
<node concept="3clFbS" id="53tmmMtpAsB" role="9aQI4">
<node concept="3SKdUt" id="53tmmMslPPV" role="3cqZAp">
<node concept="1PaTwC" id="53tmmMslPPW" role="1aUNEU">
<node concept="3oM_SD" id="53tmmMslPPX" role="1PaTwD">
<property role="3oM_SC" value="there're" />
</node>
<node concept="3oM_SD" id="53tmmMslPPY" role="1PaTwD">
<property role="3oM_SC" value="no" />
</node>
<node concept="3oM_SD" id="53tmmMslPPZ" role="1PaTwD">
<property role="3oM_SC" value="explicit" />
</node>
<node concept="3oM_SD" id="53tmmMslPQ0" role="1PaTwD">
<property role="3oM_SC" value="type" />
</node>
<node concept="3oM_SD" id="53tmmMslPQ1" role="1PaTwD">
<property role="3oM_SC" value="args," />
</node>
<node concept="3oM_SD" id="53tmmMslPQ2" role="1PaTwD">
<property role="3oM_SC" value="so" />
</node>
<node concept="3oM_SD" id="53tmmMslPQ3" role="1PaTwD">
<property role="3oM_SC" value="produce" />
</node>
<node concept="3oM_SD" id="53tmmMslPQ4" role="1PaTwD">
<property role="3oM_SC" value="type" />
</node>
<node concept="3oM_SD" id="53tmmMslPQ5" role="1PaTwD">
<property role="3oM_SC" value="variable" />
</node>
<node concept="3oM_SD" id="53tmmMslPQ6" role="1PaTwD">
<property role="3oM_SC" value="bounds" />
</node>
<node concept="3oM_SD" id="53tmmMslPQ7" role="1PaTwD">
<property role="3oM_SC" value="for" />
</node>
<node concept="3oM_SD" id="53tmmMslPQ8" role="1PaTwD">
<property role="3oM_SC" value="type" />
</node>
<node concept="3oM_SD" id="53tmmMslPQ9" role="1PaTwD">
<property role="3oM_SC" value="inference" />
</node>
</node>
</node>
<node concept="3SKdUt" id="53tmmMslPPE" role="3cqZAp">
<node concept="1PaTwC" id="53tmmMslPPF" role="1aUNEU">
<node concept="3oM_SD" id="53tmmMslPPG" role="1PaTwD">
<property role="3oM_SC" value="todo:" />
</node>
<node concept="3oM_SD" id="53tmmMslPPH" role="1PaTwD">
<property role="3oM_SC" value="inst" />
</node>
<node concept="3oM_SD" id="53tmmMslPPI" role="1PaTwD">
<property role="3oM_SC" value="with" />
</node>
<node concept="3oM_SD" id="53tmmMslPPJ" role="1PaTwD">
<property role="3oM_SC" value="hasBound" />
</node>
<node concept="3oM_SD" id="53tmmMslPPK" role="1PaTwD">
<property role="3oM_SC" value="for" />
</node>
<node concept="3oM_SD" id="53tmmMslPPL" role="1PaTwD">
<property role="3oM_SC" value="inference," />
</node>
<node concept="3oM_SD" id="53tmmMslPPM" role="1PaTwD">
<property role="3oM_SC" value="dispatch" />
</node>
<node concept="3oM_SD" id="53tmmMslPPN" role="1PaTwD">
<property role="3oM_SC" value="by" />
</node>
<node concept="3oM_SD" id="53tmmMslPPO" role="1PaTwD">
<property role="3oM_SC" value="gdecl:" />
</node>
<node concept="3oM_SD" id="53tmmMslPPP" role="1PaTwD">
<property role="3oM_SC" value="do" />
</node>
<node concept="3oM_SD" id="53tmmMslPPQ" role="1PaTwD">
<property role="3oM_SC" value="only" />
</node>
<node concept="3oM_SD" id="53tmmMslPPR" role="1PaTwD">
<property role="3oM_SC" value="for" />
</node>
<node concept="3oM_SD" id="53tmmMslPPS" role="1PaTwD">
<property role="3oM_SC" value="IMethodCall" />
</node>
<node concept="3oM_SD" id="53tmmMtc6v7" role="1PaTwD">
<property role="3oM_SC" value="&amp;" />
</node>
<node concept="3oM_SD" id="53tmmMtc6vm" role="1PaTwD">
<property role="3oM_SC" value="Class" />
</node>
<node concept="3oM_SD" id="53tmmMtc6vA" role="1PaTwD">
<property role="3oM_SC" value="Creators" />
</node>
<node concept="3oM_SD" id="53tmmMtc6vR" role="1PaTwD">
<property role="3oM_SC" value="||" />
</node>
<node concept="3oM_SD" id="53tmmMtc6w9" role="1PaTwD">
<property role="3oM_SC" value="parameterize" />
</node>
<node concept="3oM_SD" id="53tmmMtc6ws" role="1PaTwD">
<property role="3oM_SC" value="by" />
</node>
<node concept="3oM_SD" id="53tmmMtc6wK" role="1PaTwD">
<property role="3oM_SC" value="condition" />
</node>
</node>
</node>
<node concept="1Dw8fO" id="53tmmMslPPT" role="3cqZAp">
<node concept="3clFbS" id="53tmmMslPPU" role="2LFqv$">
<node concept="3Aqczg" id="53tmmMslPQa" role="3cqZAp">
<node concept="3Aqt3T" id="53tmmMslPQb" role="3Aqpz8">
<ref role="3AqCNq" node="5310cdpUCuT" resolve="hasBound" />
<node concept="a7P8L" id="53tmmMslPQc" role="3AunhB">
<ref role="a7OzE" node="53tmmMs9ij0" resolve="InstTyVars" />
<node concept="37vLTw" id="53tmmMslPQd" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPQg" resolve="i" />
</node>
<node concept="3clFbS" id="53tmmMtpAsB" role="3clFbx">
<node concept="1Dw8fO" id="53tmmMslPPT" role="3cqZAp">
<node concept="3clFbS" id="53tmmMslPPU" role="2LFqv$">
<node concept="3Aqczg" id="53tmmMslPQa" role="3cqZAp">
<node concept="3Aqt3T" id="53tmmMslPQb" role="3Aqpz8">
<ref role="3AqCNq" node="5310cdpUCuT" resolve="hasBound" />
<node concept="a7P8L" id="53tmmMslPQc" role="3AunhB">
<ref role="a7OzE" node="53tmmMs9ij0" resolve="InstTyVars" />
<node concept="37vLTw" id="53tmmMslPQd" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPQg" resolve="i" />
</node>
<node concept="a7P8L" id="53tmmMslPQe" role="3AunhB">
<ref role="a7OzE" node="53tmmMs9ij7" resolve="Bounds" />
<node concept="37vLTw" id="53tmmMslPQf" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPQg" resolve="i" />
</node>
<node concept="a7P8L" id="53tmmMslPQe" role="3AunhB">
<ref role="a7OzE" node="53tmmMs9ij7" resolve="Bounds" />
<node concept="37vLTw" id="53tmmMslPQf" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPQg" resolve="i" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWsn" id="53tmmMslPQg" role="1Duv9x">
<property role="TrG5h" value="i" />
<node concept="10Oyi0" id="53tmmMslPQh" role="1tU5fm" />
<node concept="3cmrfG" id="53tmmMslPQi" role="33vP2m">
<property role="3cmrfH" value="0" />
</node>
</node>
<node concept="3eOVzh" id="53tmmMslPQj" role="1Dwp0S">
<node concept="2OqwBi" id="53tmmMslPQk" role="3uHU7w">
<node concept="37vLTw" id="53tmmMtqdGm" role="2Oq$k0">
<ref role="3cqZAo" node="53tmmMslPMt" resolve="tvds" />
</node>
<node concept="34oBXx" id="53tmmMslPQm" role="2OqNvi" />
</node>
<node concept="37vLTw" id="53tmmMslPQn" role="3uHU7B">
<ref role="3cqZAo" node="53tmmMslPQg" resolve="i" />
</node>
</node>
<node concept="3uNrnE" id="53tmmMslPQo" role="1Dwrff">
<node concept="37vLTw" id="53tmmMslPQp" role="2$L3a6">
<ref role="3cqZAo" node="53tmmMslPQg" resolve="i" />
</node>
</node>
</node>
<node concept="3SKdUt" id="53tmmMslPPV" role="3cqZAp">
<node concept="1PaTwC" id="53tmmMslPPW" role="1aUNEU">
<node concept="3oM_SD" id="53tmmMslPPX" role="1PaTwD">
<property role="3oM_SC" value="if" />
</node>
<node concept="3oM_SD" id="3vTJNooXp2I" role="1PaTwD">
<property role="3oM_SC" value="there're" />
</node>
<node concept="3oM_SD" id="53tmmMslPPY" role="1PaTwD">
<property role="3oM_SC" value="no" />
</node>
<node concept="3oM_SD" id="53tmmMslPPZ" role="1PaTwD">
<property role="3oM_SC" value="explicit" />
</node>
<node concept="3oM_SD" id="53tmmMslPQ0" role="1PaTwD">
<property role="3oM_SC" value="type" />
</node>
<node concept="3oM_SD" id="3vTJNooXp3b" role="1PaTwD">
<property role="3oM_SC" value="args" />
</node>
<node concept="3oM_SD" id="3vTJNooXp3o" role="1PaTwD">
<property role="3oM_SC" value="then" />
</node>
<node concept="3oM_SD" id="3vTJNooXp45" role="1PaTwD">
<property role="3oM_SC" value="there're" />
</node>
<node concept="3oM_SD" id="3vTJNooXp4k" role="1PaTwD">
<property role="3oM_SC" value="" />
</node>
</node>
</node>
<node concept="3SKdUt" id="3vTJNooXp4A" role="3cqZAp">
<node concept="1PaTwC" id="3vTJNooXp4_" role="1aUNEU">
<node concept="3oM_SD" id="3vTJNooXp6P" role="1PaTwD">
<property role="3oM_SC" value="type" />
</node>
<node concept="3oM_SD" id="53tmmMslPQ5" role="1PaTwD">
<property role="3oM_SC" value="variable" />
</node>
<node concept="3oM_SD" id="53tmmMslPQ6" role="1PaTwD">
<property role="3oM_SC" value="bounds" />
</node>
<node concept="3oM_SD" id="53tmmMslPQ7" role="1PaTwD">
<property role="3oM_SC" value="(hasBound)" />
</node>
<node concept="3oM_SD" id="3vTJNooXp6W" role="1PaTwD">
<property role="3oM_SC" value="for" />
</node>
<node concept="3oM_SD" id="53tmmMslPQ8" role="1PaTwD">
<property role="3oM_SC" value="type" />
</node>
<node concept="3oM_SD" id="53tmmMslPQ9" role="1PaTwD">
<property role="3oM_SC" value="inference" />
</node>
</node>
</node>
<node concept="3clFbJ" id="3vTJNooNTRo" role="3cqZAp">
<node concept="3clFbS" id="3vTJNooNTRq" role="3clFbx">
<node concept="3X$Joe" id="53tmmMslPOC" role="3cqZAp">
<node concept="aZer4" id="53tmmMslPOD" role="3XD1gS">
<property role="TrG5h" value="TyArgs" />
<node concept="2OqwBi" id="53tmmMslPOE" role="3gj$pD">
<node concept="3hN9Ij" id="53tmmMslPOF" role="2Oq$k0">
<ref role="3hLkJx" node="53tmmMs9igS" resolve="tyArgs" />
</node>
<node concept="34oBXx" id="53tmmMslPOG" role="2OqNvi" />
</node>
</node>
<node concept="aZer4" id="53tmmMslPOH" role="3XD1gS">
<property role="TrG5h" value="TyArgCaps" />
<node concept="2OqwBi" id="53tmmMslPOI" role="3gj$pD">
<node concept="3hN9Ij" id="53tmmMslPOJ" role="2Oq$k0">
<ref role="3hLkJx" node="53tmmMs9igS" resolve="tyArgs" />
</node>
<node concept="34oBXx" id="53tmmMslPOK" role="2OqNvi" />
</node>
</node>
<node concept="32pEOW" id="53tmmMslPOL" role="3vLBG7" />
</node>
<node concept="3cpWs8" id="53tmmMsDKhQ" role="3cqZAp">
<node concept="3cpWsn" id="53tmmMsDKhT" role="3cpWs9">
<property role="TrG5h" value="allowUnchecked" />
<node concept="10P_77" id="53tmmMsDKhO" role="1tU5fm" />
<node concept="3K4zz7" id="53tmmMsJGjX" role="33vP2m">
<node concept="3hN9Ij" id="53tmmMsJHhf" role="3K4E3e">
<ref role="3hLkJx" node="53tmmMsDKj7" resolve="allowUncheckedConversions" />
</node>
<node concept="3clFbT" id="53tmmMsJHK0" role="3K4GZi" />
<node concept="3y3z36" id="53tmmMsJFHH" role="3K4Cdx">
<node concept="10Nm6u" id="53tmmMsJGj_" role="3uHU7w" />
<node concept="3hN9Ij" id="53tmmMsJEWP" role="3uHU7B">
<ref role="3hLkJx" node="53tmmMsDKj7" resolve="allowUncheckedConversions" />
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWsn" id="53tmmMslPQg" role="1Duv9x">
<property role="TrG5h" value="i" />
<node concept="10Oyi0" id="53tmmMslPQh" role="1tU5fm" />
<node concept="3cmrfG" id="53tmmMslPQi" role="33vP2m">
<property role="3cmrfH" value="0" />
</node>
</node>
<node concept="3eOVzh" id="53tmmMslPQj" role="1Dwp0S">
<node concept="2OqwBi" id="53tmmMslPQk" role="3uHU7w">
<node concept="37vLTw" id="53tmmMtqdGm" role="2Oq$k0">
<ref role="3cqZAo" node="53tmmMslPMt" resolve="tvds" />
<node concept="1Dw8fO" id="53tmmMslPOM" role="3cqZAp">
<node concept="3clFbS" id="53tmmMslPON" role="2LFqv$">
<node concept="3Aqczg" id="53tmmMslPOO" role="3cqZAp">
<node concept="3jbYBd" id="53tmmMslPOP" role="3Aqpz8">
<ref role="3jbY9l" node="5itBwMau8m1" resolve="lift" />
<node concept="1y4W85" id="53tmmMslPOQ" role="3jbY8P">
<node concept="37vLTw" id="53tmmMslPOR" role="1y58nS">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
<node concept="3hN9Ij" id="53tmmMslPOS" role="1y566C">
<ref role="3hLkJx" node="53tmmMs9igS" resolve="tyArgs" />
</node>
</node>
<node concept="a7P8L" id="53tmmMslPOT" role="3jbY8V">
<ref role="a7OzE" node="53tmmMslPOD" resolve="TyArgs" />
<node concept="37vLTw" id="53tmmMslPOU" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
<node concept="3jhG_Y" id="53tmmMslPOV" role="3jhGvd">
<node concept="3jhG_Z" id="53tmmMslPOW" role="3jhGob">
<ref role="3jhG_U" node="5itBwMaLICh" resolve="substitution" />
<node concept="37vLTw" id="53tmmMslPOX" role="3jhG_S">
<ref role="3cqZAo" node="53tmmMslPNn" resolve="subs" />
</node>
</node>
<node concept="3jhG_Z" id="53tmmMslPOY" role="3jhGob">
<ref role="3jhG_U" node="5itBwMb2a1b" resolve="allowUncheckedConversion" />
<node concept="37vLTw" id="53tmmMsDL_i" role="3jhG_S">
<ref role="3cqZAo" node="53tmmMsDKhT" resolve="allowUnchecked" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="53tmmMslPP0" role="3cqZAp" />
<node concept="3Aqczg" id="53tmmMslPP1" role="3cqZAp">
<node concept="3Aqt3T" id="53tmmMslPP2" role="3Aqpz8">
<ref role="3AqCNq" node="3wxtToEiJ2j" resolve="captureBound" />
<node concept="a7P8L" id="53tmmMslPP3" role="3AunhB">
<ref role="a7OzE" node="53tmmMslPOH" resolve="TyArgCaps" />
<node concept="37vLTw" id="53tmmMslPP4" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
<node concept="a7P8L" id="53tmmMslPP5" role="3AunhB">
<ref role="a7OzE" node="53tmmMslPOD" resolve="TyArgs" />
<node concept="37vLTw" id="53tmmMslPP6" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
<node concept="a7P8L" id="53tmmMslPP7" role="3AunhB">
<ref role="a7OzE" node="53tmmMs9ij7" resolve="Bounds" />
<node concept="37vLTw" id="53tmmMslPP8" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
</node>
</node>
<node concept="3Aqczg" id="3vTJNooNRs9" role="3cqZAp">
<node concept="3Aqt3T" id="3vTJNooNRsa" role="3Aqpz8">
<ref role="3AqCNq" node="3MG3BxoG13Q" resolve="convertsToSafe" />
<node concept="a7P8L" id="3vTJNooNRsb" role="3AunhB">
<ref role="a7OzE" node="53tmmMslPOH" resolve="TyArgCaps" />
<node concept="37vLTw" id="3vTJNooNRsc" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
<node concept="a7P8L" id="3vTJNooNRsd" role="3AunhB">
<ref role="a7OzE" node="53tmmMs9ij0" resolve="InstTyVars" />
<node concept="37vLTw" id="3vTJNooNRse" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
<node concept="37jhX" id="3vTJNooNRsf" role="3AunhB">
<node concept="1y4W85" id="3vTJNooNRsg" role="37jj2">
<node concept="37vLTw" id="3vTJNooNRsh" role="1y58nS">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
<node concept="3hN9Ij" id="3vTJNooNRsi" role="1y566C">
<ref role="3hLkJx" node="53tmmMs9igS" resolve="tyArgs" />
</node>
</node>
</node>
<node concept="HKQnh" id="3vTJNooNRsj" role="3AunhB">
<node concept="Xl_RD" id="3vTJNooNRsk" role="HKQng">
<property role="Xl_RC" value="wrong substitute" />
</node>
</node>
</node>
</node>
<node concept="3Aqczg" id="53tmmMslPPl" role="3cqZAp">
<node concept="3A8Hvi" id="53tmmMslPPm" role="3Aqpz8">
<node concept="a7P8L" id="53tmmMslPPn" role="3A8wtg">
<ref role="a7OzE" node="53tmmMs9ij0" resolve="InstTyVars" />
<node concept="37vLTw" id="53tmmMslPPo" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
<node concept="a7P8L" id="53tmmMslPPp" role="3A8w4Q">
<ref role="a7OzE" node="53tmmMslPOH" resolve="TyArgCaps" />
<node concept="37vLTw" id="53tmmMslPPq" role="3gCZO6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
</node>
</node>
<node concept="34oBXx" id="53tmmMslPQm" role="2OqNvi" />
</node>
<node concept="37vLTw" id="53tmmMslPQn" role="3uHU7B">
<ref role="3cqZAo" node="53tmmMslPQg" resolve="i" />
<node concept="3cpWsn" id="53tmmMslPPr" role="1Duv9x">
<property role="TrG5h" value="i" />
<node concept="10Oyi0" id="53tmmMslPPs" role="1tU5fm" />
<node concept="3cmrfG" id="53tmmMslPPt" role="33vP2m">
<property role="3cmrfH" value="0" />
</node>
</node>
</node>
<node concept="3uNrnE" id="53tmmMslPQo" role="1Dwrff">
<node concept="37vLTw" id="53tmmMslPQp" role="2$L3a6">
<ref role="3cqZAo" node="53tmmMslPQg" resolve="i" />
<node concept="3eOVzh" id="53tmmMslPPu" role="1Dwp0S">
<node concept="2OqwBi" id="53tmmMslPPv" role="3uHU7w">
<node concept="3hN9Ij" id="53tmmMslPPw" role="2Oq$k0">
<ref role="3hLkJx" node="53tmmMs9igS" resolve="tyArgs" />
</node>
<node concept="34oBXx" id="53tmmMslPPx" role="2OqNvi" />
</node>
<node concept="37vLTw" id="53tmmMslPPy" role="3uHU7B">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
<node concept="3uNrnE" id="53tmmMslPPz" role="1Dwrff">
<node concept="37vLTw" id="53tmmMslPP$" role="2$L3a6">
<ref role="3cqZAo" node="53tmmMslPPr" resolve="i" />
</node>
</node>
</node>
</node>
<node concept="2OqwBi" id="3vTJNooNW1X" role="3clFbw">
<node concept="3hN9Ij" id="3vTJNooNTSW" role="2Oq$k0">
<ref role="3hLkJx" node="53tmmMs9igS" resolve="tyArgs" />
</node>
<node concept="3GX2aA" id="3vTJNooNY58" role="2OqNvi" />
</node>
</node>
<node concept="3clFbH" id="3vTJNooNZpa" role="3cqZAp" />
</node>
</node>
</node>