<?xml version='1.0' encoding='UTF-8'?>
<AST>
  <HeaderNode startPos="1,1,0" endPos="7,1,113">
    <VariableTable startPos="0,0,0" endPos="0,0,0">
      <NameSlot slot="0" name="n" startPos="0,0,0" endPos="0,0,0"/>
      <NameSlot slot="1" name="m" startPos="1,12,11" endPos="1,13,12"/>
      <NameSlot slot="2" name="ack" startPos="0,0,0" endPos="0,0,0"/>
    </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,48,111">
      <NameSlot slot="2" name="ack" startPos="1,5,4" endPos="1,8,7"/>
      <DynamicFunctionNode startPos="0,0,0" endPos="0,0,0">
        <FunctionParameterNode materialize="true" typeRequiresMaterialize="false" startPos="1,12,11" endPos="1,21,20">
          <NameSlot slot="1" name="m" startPos="1,12,11" endPos="1,13,12"/>
          <LiteralTypeNode startPos="0,0,0" endPos="0,0,0">
            <TypeNode startPos="1,15,14" endPos="1,21,20"/>
          </LiteralTypeNode>
        </FunctionParameterNode>
        <FunctionParameterNode materialize="true" typeRequiresMaterialize="false" startPos="1,23,22" endPos="1,32,31">
          <NameSlot slot="0" name="n" startPos="1,23,22" endPos="1,24,23"/>
          <LiteralTypeNode startPos="0,0,0" endPos="0,0,0">
            <TypeNode startPos="1,26,25" endPos="1,32,31"/>
          </LiteralTypeNode>
        </FunctionParameterNode>
        <TailRecFunctionBodyNode startPos="0,0,0" endPos="0,0,0">
          <IfNode startPos="0,0,0" endPos="0,0,0">
            <BinaryOpNode name="+" startPos="3,5,52" endPos="3,10,57">
              <VariableReferenceNode startPos="3,5,52" endPos="3,6,53"/>
              <NumberNode startPos="3,9,56" endPos="3,10,57">1</NumberNode>
            </BinaryOpNode>
            <BinaryOpNode name="==" startPos="2,5,40" endPos="2,11,46">
              <VariableReferenceNode startPos="2,5,40" endPos="2,6,41"/>
              <NumberNode startPos="2,10,45" endPos="2,11,46">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="m" startPos="1,12,11" endPos="1,13,12"/>
                <BinaryOpNode name="-" startPos="5,9,72" endPos="5,14,77">
                  <VariableReferenceNode startPos="5,9,72" endPos="5,10,73"/>
                  <NumberNode startPos="5,13,76" endPos="5,14,77">1</NumberNode>
                </BinaryOpNode>
              </VarDirective>
              <VarDirective startPos="0,0,0" endPos="0,0,0">
                <NameSlot slot="0" name="n" startPos="1,23,22" endPos="1,24,23"/>
                <IfNode startPos="5,16,79" endPos="5,47,110">
                  <NumberNode startPos="5,27,90" endPos="5,28,91">1</NumberNode>
                  <BinaryOpNode name="==" startPos="5,19,82" endPos="5,25,88">
                    <VariableReferenceNode startPos="5,19,82" endPos="5,20,83"/>
                    <NumberNode startPos="5,24,87" endPos="5,25,88">0</NumberNode>
                  </BinaryOpNode>
                  <FunctionCallNode startPos="5,34,97" endPos="5,47,110">
                    <VariableReferenceNode startPos="5,34,97" endPos="5,37,100"/>
                    <VariableReferenceNode startPos="5,38,101" endPos="5,39,102"/>
                    <BinaryOpNode name="-" startPos="5,41,104" endPos="5,46,109">
                      <VariableReferenceNode startPos="5,41,104" endPos="5,42,105"/>
                      <NumberNode startPos="5,45,108" endPos="5,46,109">1</NumberNode>
                    </BinaryOpNode>
                  </FunctionCallNode>
                </IfNode>
              </VarDirective>
            </InlineTailRecFunctionCall>
          </IfNode>
        </TailRecFunctionBodyNode>
      </DynamicFunctionNode>
    </FunctionDirective>
  </HeaderNode>
  <FunctionCallNode startPos="8,1,117" endPos="8,10,126">
    <VariableReferenceNode startPos="8,1,117" endPos="8,4,120"/>
    <NumberNode startPos="8,5,121" endPos="8,6,122">1</NumberNode>
    <NumberNode startPos="8,8,124" endPos="8,9,125">2</NumberNode>
  </FunctionCallNode>
</AST>