<?xml version='1.0' encoding='UTF-8'?>
<AST>
  <HeaderNode startPos="1,1,0" endPos="8,1,196">
    <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="xs" startPos="0,0,0" endPos="0,0,0"/>
      <NameSlot slot="5" name="x" startPos="0,0,0" endPos="0,0,0"/>
      <NameSlot slot="6" name="h" 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,8,195">
      <NameSlot slot="6" name="h" startPos="1,5,4" endPos="1,6,5"/>
      <FunctionNode startPos="0,0,0" endPos="0,0,0">
        <FunctionParameterNode materialize="false" 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">
          <PatternMatcherNode startPos="0,0,0" endPos="0,0,0">
            <VariableReferenceNode startPos="2,7,53" endPos="2,8,54"/>
            <EmptyArrayPatternNode startPos="0,0,0" endPos="0,0,0">
              <FunctionNode startPos="3,20,82" endPos="3,27,89">
                <VariableReferenceNode startPos="3,20,82" endPos="3,27,89"/>
              </FunctionNode>
            </EmptyArrayPatternNode>
            <DeconstructArrayPatternNode startPos="0,0,0" endPos="0,0,0">
              <FunctionNode startPos="5,13,127" endPos="6,38,187">
                <FunctionParameterNode materialize="true" startPos="0,0,0" endPos="0,0,0">
                  <NameSlot slot="5" name="x" startPos="4,15,104" endPos="4,16,105"/>
                  <TypeNode startPos="0,0,0" endPos="0,0,0"/>
                </FunctionParameterNode>
                <FunctionParameterNode materialize="true" startPos="0,0,0" endPos="0,0,0">
                  <NameSlot slot="4" name="xs" startPos="4,19,108" endPos="4,21,110"/>
                  <TypeNode startPos="0,0,0" endPos="0,0,0"/>
                </FunctionParameterNode>
                <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"/>
                      <VariableReferenceNode startPos="5,32,146" endPos="5,34,148"/>
                    </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="5,16,130" endPos="5,28,142"/>
                  <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"/>
                      <VariableReferenceNode startPos="6,20,169" endPos="6,22,171"/>
                    </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="6,25,174" endPos="6,37,186"/>
                    </VarDirective>
                  </InlineTailRecFunctionCall>
                </IfNode>
              </FunctionNode>
            </DeconstructArrayPatternNode>
          </PatternMatcherNode>
        </TailRecFunctionBodyNode>
      </FunctionNode>
    </FunctionDirective>
  </HeaderNode>
  <FunctionCallNode startPos="9,1,200" endPos="9,6,205"/>
</AST>