<?xml version='1.0' encoding='UTF-8'?>
<AST>
  <HeaderNode startPos="1,1,0" endPos="8,1,281">
    <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,21,20" endPos="1,26,25"/>
      <NameSlot slot="2" name="simpleBranching" startPos="1,5,4" endPos="1,20,19"/>
      <NameSlot slot="3" name="simpleUnlessBranching" startPos="5,5,137" endPos="5,26,158"/>
    </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="3,51,131">
      <NameSlot slot="2" name="simpleBranching" startPos="1,5,4" endPos="1,20,19"/>
      <FunctionNode startPos="0,0,0" endPos="0,0,0">
        <FunctionParameterNode materialize="true" startPos="1,21,20" endPos="1,34,33">
          <NameSlot slot="1" name="count" startPos="1,21,20" endPos="1,26,25"/>
          <TypeNode startPos="1,28,27" endPos="1,34,33"/>
        </FunctionParameterNode>
        <FunctionParameterNode materialize="true" startPos="1,36,35" endPos="1,53,52">
          <NameSlot slot="0" name="value" startPos="1,36,35" endPos="1,41,40"/>
          <TypeNode startPos="1,42,41" endPos="1,48,47"/>
        </FunctionParameterNode>
        <TailRecFunctionBodyNode startPos="0,0,0" endPos="0,0,0">
          <IfNode startPos="0,0,0" endPos="0,0,0">
            <VariableReferenceNode startPos="2,20,75" endPos="2,25,80"/>
            <BinaryOpNode startPos="2,8,63" endPos="2,18,73">
              <VariableReferenceNode startPos="2,8,63" endPos="2,13,68"/>
              <NumberNode startPos="2,17,72" endPos="2,18,73">0</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,21,20" endPos="1,26,25"/>
                <BinaryOpNode startPos="3,26,106" endPos="3,35,115">
                  <VariableReferenceNode startPos="3,26,106" endPos="3,31,111"/>
                  <NumberNode startPos="3,34,114" endPos="3,35,115">1</NumberNode>
                </BinaryOpNode>
              </VarDirective>
              <VarDirective startPos="0,0,0" endPos="0,0,0">
                <NameSlot slot="0" name="value" startPos="1,36,35" endPos="1,41,40"/>
                <BinaryOpNode startPos="3,37,117" endPos="3,50,130">
                  <VariableReferenceNode startPos="3,37,117" endPos="3,42,122"/>
                  <StringNode startPos="3,45,125" endPos="3,50,130">Foo</StringNode>
                </BinaryOpNode>
              </VarDirective>
            </InlineTailRecFunctionCall>
          </IfNode>
        </TailRecFunctionBodyNode>
      </FunctionNode>
    </FunctionDirective>
    <FunctionDirective startPos="5,1,133" endPos="7,57,280">
      <NameSlot slot="3" name="simpleUnlessBranching" startPos="5,5,137" endPos="5,26,158"/>
      <FunctionNode startPos="0,0,0" endPos="0,0,0">
        <FunctionParameterNode materialize="true" startPos="5,27,159" endPos="5,40,172">
          <NameSlot slot="1" name="count" startPos="5,27,159" endPos="5,32,164"/>
          <TypeNode startPos="5,34,166" endPos="5,40,172"/>
        </FunctionParameterNode>
        <FunctionParameterNode materialize="true" startPos="5,42,174" endPos="5,59,191">
          <NameSlot slot="0" name="value" startPos="5,42,174" endPos="5,47,179"/>
          <TypeNode startPos="5,48,180" endPos="5,54,186"/>
        </FunctionParameterNode>
        <TailRecFunctionBodyNode startPos="0,0,0" endPos="0,0,0">
          <UnlessNode startPos="0,0,0" endPos="0,0,0">
            <VariableReferenceNode startPos="6,24,218" endPos="6,29,223"/>
            <InlineTailRecFunctionCall startPos="0,0,0" endPos="0,0,0">
              <VarDirective startPos="0,0,0" endPos="0,0,0">
                <NameSlot slot="1" name="count" startPos="5,27,159" endPos="5,32,164"/>
                <BinaryOpNode startPos="7,32,255" endPos="7,41,264">
                  <VariableReferenceNode startPos="7,32,255" endPos="7,37,260"/>
                  <NumberNode startPos="7,40,263" endPos="7,41,264">1</NumberNode>
                </BinaryOpNode>
              </VarDirective>
              <VarDirective startPos="0,0,0" endPos="0,0,0">
                <NameSlot slot="0" name="value" startPos="5,42,174" endPos="5,47,179"/>
                <BinaryOpNode startPos="7,43,266" endPos="7,56,279">
                  <VariableReferenceNode startPos="7,43,266" endPos="7,48,271"/>
                  <StringNode startPos="7,51,274" endPos="7,56,279">Foo</StringNode>
                </BinaryOpNode>
              </VarDirective>
            </InlineTailRecFunctionCall>
          </UnlessNode>
        </TailRecFunctionBodyNode>
      </FunctionNode>
    </FunctionDirective>
  </HeaderNode>
  <FunctionCallNode startPos="9,1,285" endPos="9,20,304"/>
</AST>