<?xml version='1.0' encoding='UTF-8'?>
<AST>
  <HeaderNode startPos="1,1,0" endPos="12,1,435">
    <VariableTable startPos="0,0,0" endPos="0,0,0">
      <NameSlot slot="0" name="value" startPos="0,0,0" endPos="0,0,0"/>
      <NameSlot slot="1" name="count" startPos="1,15,14" endPos="1,20,19"/>
      <NameSlot slot="2" name="branching" startPos="1,5,4" endPos="1,14,13"/>
      <NameSlot slot="3" name="branchingUnless" startPos="7,5,207" endPos="7,20,222"/>
    </VariableTable>
    <VariableTable startPos="0,0,0" endPos="0,0,0">
      <NameSlot slot="0" name="dw::Core" startPos="0,0,0" endPos="0,0,0"/>
    </VariableTable>
    <ExternalBindings startPos="0,0,0" endPos="0,0,0"/>
    <FunctionDirective startPos="1,1,0" endPos="5,45,201">
      <NameSlot slot="2" name="branching" startPos="1,5,4" endPos="1,14,13"/>
      <FunctionNode startPos="0,0,0" endPos="0,0,0">
        <FunctionParameterNode materialize="true" startPos="1,15,14" endPos="1,28,27">
          <NameSlot slot="1" name="count" startPos="1,15,14" endPos="1,20,19"/>
          <TypeNode startPos="1,22,21" endPos="1,28,27"/>
        </FunctionParameterNode>
        <FunctionParameterNode materialize="true" startPos="1,30,29" endPos="1,47,46">
          <NameSlot slot="0" name="value" startPos="1,30,29" endPos="1,35,34"/>
          <TypeNode startPos="1,36,35" endPos="1,42,41"/>
        </FunctionParameterNode>
        <TailRecFunctionBodyNode startPos="0,0,0" endPos="0,0,0">
          <IfNode startPos="0,0,0" endPos="0,0,0">
            <VariableReferenceNode startPos="2,20,69" endPos="2,25,74"/>
            <BinaryOpNode startPos="2,8,57" endPos="2,18,67">
              <VariableReferenceNode startPos="2,8,57" endPos="2,13,62"/>
              <NumberNode startPos="2,17,66" endPos="2,18,67">0</NumberNode>
            </BinaryOpNode>
            <IfNode startPos="0,0,0" endPos="0,0,0">
              <StringNode startPos="3,25,99" endPos="3,30,104">Bar</StringNode>
              <BinaryOpNode startPos="3,13,87" endPos="3,23,97">
                <VariableReferenceNode startPos="3,13,87" endPos="3,18,92"/>
                <NumberNode startPos="3,22,96" endPos="3,23,97">1</NumberNode>
              </BinaryOpNode>
              <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="1" name="count" startPos="1,15,14" endPos="1,20,19"/>
                    <NumberNode startPos="4,35,139" endPos="4,36,140">0</NumberNode>
                  </VarDirective>
                  <VarDirective startPos="0,0,0" endPos="0,0,0">
                    <NameSlot slot="0" name="value" startPos="1,30,29" endPos="1,35,34"/>
                    <BinaryOpNode startPos="4,38,142" endPos="4,51,155">
                      <VariableReferenceNode startPos="4,38,142" endPos="4,43,147"/>
                      <StringNode startPos="4,46,150" endPos="4,51,155">Bar</StringNode>
                    </BinaryOpNode>
                  </VarDirective>
                </InlineTailRecFunctionCall>
                <BinaryOpNode startPos="4,13,117" endPos="4,23,127">
                  <VariableReferenceNode startPos="4,13,117" endPos="4,18,122"/>
                  <NumberNode startPos="4,22,126" endPos="4,23,127">2</NumberNode>
                </BinaryOpNode>
                <InlineTailRecFunctionCall startPos="0,0,0" endPos="0,0,0">
                  <VarDirective startPos="0,0,0" endPos="0,0,0">
                    <NameSlot slot="1" name="count" startPos="1,15,14" endPos="1,20,19"/>
                    <BinaryOpNode startPos="5,20,176" endPos="5,29,185">
                      <VariableReferenceNode startPos="5,20,176" endPos="5,25,181"/>
                      <NumberNode startPos="5,28,184" endPos="5,29,185">1</NumberNode>
                    </BinaryOpNode>
                  </VarDirective>
                  <VarDirective startPos="0,0,0" endPos="0,0,0">
                    <NameSlot slot="0" name="value" startPos="1,30,29" endPos="1,35,34"/>
                    <BinaryOpNode startPos="5,31,187" endPos="5,44,200">
                      <VariableReferenceNode startPos="5,31,187" endPos="5,36,192"/>
                      <StringNode startPos="5,39,195" endPos="5,44,200">Foo</StringNode>
                    </BinaryOpNode>
                  </VarDirective>
                </InlineTailRecFunctionCall>
              </IfNode>
            </IfNode>
          </IfNode>
        </TailRecFunctionBodyNode>
      </FunctionNode>
    </FunctionDirective>
    <FunctionDirective startPos="7,1,203" endPos="11,51,434">
      <NameSlot slot="3" name="branchingUnless" startPos="7,5,207" endPos="7,20,222"/>
      <FunctionNode startPos="0,0,0" endPos="0,0,0">
        <FunctionParameterNode materialize="true" startPos="7,21,223" endPos="7,34,236">
          <NameSlot slot="1" name="count" startPos="7,21,223" endPos="7,26,228"/>
          <TypeNode startPos="7,28,230" endPos="7,34,236"/>
        </FunctionParameterNode>
        <FunctionParameterNode materialize="true" startPos="7,36,238" endPos="7,53,255">
          <NameSlot slot="0" name="value" startPos="7,36,238" endPos="7,41,243"/>
          <TypeNode startPos="7,42,244" endPos="7,48,250"/>
        </FunctionParameterNode>
        <TailRecFunctionBodyNode startPos="0,0,0" endPos="0,0,0">
          <UnlessNode startPos="0,0,0" endPos="0,0,0">
            <VariableReferenceNode startPos="8,24,282" endPos="8,29,287"/>
            <UnlessNode startPos="0,0,0" endPos="0,0,0">
              <StringNode startPos="9,29,316" endPos="9,34,321">Bar</StringNode>
              <UnlessNode 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="1" name="count" startPos="7,21,223" endPos="7,26,228"/>
                    <NumberNode startPos="10,45,366" endPos="10,46,367">0</NumberNode>
                  </VarDirective>
                  <VarDirective startPos="0,0,0" endPos="0,0,0">
                    <NameSlot slot="0" name="value" startPos="7,36,238" endPos="7,41,243"/>
                    <BinaryOpNode startPos="10,48,369" endPos="10,61,382">
                      <VariableReferenceNode startPos="10,48,369" endPos="10,53,374"/>
                      <StringNode startPos="10,56,377" endPos="10,61,382">Bar</StringNode>
                    </BinaryOpNode>
                  </VarDirective>
                </InlineTailRecFunctionCall>
                <InlineTailRecFunctionCall startPos="0,0,0" endPos="0,0,0">
                  <VarDirective startPos="0,0,0" endPos="0,0,0">
                    <NameSlot slot="1" name="count" startPos="7,21,223" endPos="7,26,228"/>
                    <BinaryOpNode startPos="11,26,409" endPos="11,35,418">
                      <VariableReferenceNode startPos="11,26,409" endPos="11,31,414"/>
                      <NumberNode startPos="11,34,417" endPos="11,35,418">1</NumberNode>
                    </BinaryOpNode>
                  </VarDirective>
                  <VarDirective startPos="0,0,0" endPos="0,0,0">
                    <NameSlot slot="0" name="value" startPos="7,36,238" endPos="7,41,243"/>
                    <BinaryOpNode startPos="11,37,420" endPos="11,50,433">
                      <VariableReferenceNode startPos="11,37,420" endPos="11,42,425"/>
                      <StringNode startPos="11,45,428" endPos="11,50,433">Foo</StringNode>
                    </BinaryOpNode>
                  </VarDirective>
                </InlineTailRecFunctionCall>
              </UnlessNode>
            </UnlessNode>
          </UnlessNode>
        </TailRecFunctionBodyNode>
      </FunctionNode>
    </FunctionDirective>
  </HeaderNode>
  <FunctionCallNode startPos="13,1,439" endPos="13,14,452"/>
</AST>