<?xml version='1.0' encoding='UTF-8'?>
<AST>
  <HeaderNode startPos="1,1,0" endPos="8,1,182">
    <VariableTable startPos="0,0,0" endPos="0,0,0">
      <NameSlot slot="0" name="in1" startPos="0,0,0" endPos="0,0,0"/>
      <NameSlot slot="1" name="in0" startPos="0,0,0" endPos="0,0,0"/>
      <NameSlot slot="2" name="collect" startPos="0,0,0" endPos="0,0,0"/>
      <NameSlot slot="3" name="a" startPos="1,7,6" endPos="1,8,7"/>
      <NameSlot slot="4" name="f" startPos="1,5,4" endPos="1,6,5"/>
    </VariableTable>
    <InputDirective startPos="0,0,0" endPos="0,0,0">
      <NameSlot slot="0" name="in1" startPos="0,0,0" endPos="0,0,0"/>
    </InputDirective>
    <InputDirective startPos="0,0,0" endPos="0,0,0">
      <NameSlot slot="1" name="in0" startPos="0,0,0" endPos="0,0,0"/>
    </InputDirective>
    <FunctionDirective startPos="1,1,0" endPos="7,40,181">
      <NameSlot slot="4" name="f" startPos="1,5,4" endPos="1,6,5"/>
      <FunctionNode startPos="0,0,0" endPos="0,0,0">
        <FunctionParameterNode materialize="true" startPos="1,7,6" endPos="1,23,22">
          <NameSlot slot="3" name="a" startPos="1,7,6" endPos="1,8,7"/>
          <TypeNode startPos="1,10,9" endPos="1,23,22"/>
        </FunctionParameterNode>
        <FunctionParameterNode materialize="true" startPos="1,25,24" endPos="1,44,43">
          <NameSlot slot="2" name="collect" startPos="1,25,24" endPos="1,32,31"/>
          <TypeNode startPos="1,33,32" endPos="1,39,38"/>
        </FunctionParameterNode>
        <TailRecFunctionBodyNode startPos="0,0,0" endPos="0,0,0">
          <IfNode startPos="0,0,0" endPos="0,0,0">
            <VariableReferenceNode startPos="3,9,74" endPos="3,16,81"/>
            <FunctionCallNode startPos="2,8,54" endPos="2,18,64"/>
            <IfNode startPos="0,0,0" endPos="0,0,0">
              <InlineTailRecFunctionCall startPos="0,0,0" endPos="0,0,0">
                <VarDirective startPos="0,0,0" endPos="0,0,0">
                  <NameSlot slot="3" name="a" startPos="1,7,6" endPos="1,8,7"/>
                  <NullSafeNode startPos="5,11,121" endPos="5,20,130">
                    <BinaryOpNode startPos="5,11,121" endPos="5,20,130"/>
                  </NullSafeNode>
                </VarDirective>
                <VarDirective startPos="0,0,0" endPos="0,0,0">
                  <NameSlot slot="2" name="collect" startPos="1,25,24" endPos="1,32,31"/>
                  <StringNode startPos="1,42,41" endPos="1,44,43"></StringNode>
                </VarDirective>
              </InlineTailRecFunctionCall>
              <BinaryOpNode startPos="4,13,94" endPos="4,28,109"/>
              <InlineTailRecFunctionCall startPos="0,0,0" endPos="0,0,0">
                <VarDirective startPos="0,0,0" endPos="0,0,0">
                  <NameSlot slot="3" name="a" startPos="1,7,6" endPos="1,8,7"/>
                  <NullSafeNode startPos="7,11,152" endPos="7,20,161">
                    <BinaryOpNode startPos="7,11,152" endPos="7,20,161"/>
                  </NullSafeNode>
                </VarDirective>
                <VarDirective startPos="0,0,0" endPos="0,0,0">
                  <NameSlot slot="2" name="collect" startPos="1,25,24" endPos="1,32,31"/>
                  <FunctionCallNode startPos="7,24,165" endPos="7,39,180"/>
                </VarDirective>
              </InlineTailRecFunctionCall>
            </IfNode>
          </IfNode>
        </TailRecFunctionBodyNode>
      </FunctionNode>
    </FunctionDirective>
  </HeaderNode>
  <FunctionCallNode startPos="9,1,186" endPos="9,37,222"/>
</AST>