<?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="result" startPos="0,0,0" endPos="0,0,0"/>
      <NameSlot slot="1" name="element" startPos="2,14,21" endPos="2,21,28"/>
      <NameSlot slot="2" name="xs" startPos="0,0,0" endPos="0,0,0"/>
      <NameSlot slot="3" name="by" startPos="2,38,45" endPos="2,40,47"/>
      <NameSlot slot="4" name="x" startPos="0,0,0" endPos="0,0,0"/>
      <NameSlot slot="5" name="concatBy" startPos="2,5,12" endPos="2,13,20"/>
    </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"/>
    <VersionDirective startPos="1,1,0" endPos="1,8,7">
      <VersionMajor startPos="1,5,4" endPos="1,6,5"/>
      <VersionMinor startPos="1,7,6" endPos="1,8,7"/>
    </VersionDirective>
    <FunctionDirective startPos="2,1,8" endPos="7,2,195">
      <NameSlot slot="5" name="concatBy" startPos="2,5,12" endPos="2,13,20"/>
      <FunctionNode startPos="0,0,0" endPos="0,0,0">
        <FunctionParameterNode materialize="false" startPos="2,14,21" endPos="2,36,43">
          <NameSlot slot="1" name="element" startPos="2,14,21" endPos="2,21,28"/>
          <TypeNode startPos="2,23,30" endPos="2,36,43"/>
        </FunctionParameterNode>
        <FunctionParameterNode materialize="true" startPos="2,38,45" endPos="2,48,55">
          <NameSlot slot="3" name="by" startPos="2,38,45" endPos="2,40,47"/>
          <TypeNode startPos="2,42,49" endPos="2,48,55"/>
        </FunctionParameterNode>
        <FunctionParameterNode materialize="true" startPos="2,50,57" endPos="2,69,76">
          <NameSlot slot="0" name="result" startPos="2,50,57" endPos="2,56,63"/>
          <TypeNode startPos="2,58,65" endPos="2,64,71"/>
        </FunctionParameterNode>
        <TailRecFunctionBodyNode startPos="0,0,0" endPos="0,0,0">
          <DoBlockNode startPos="0,0,0" endPos="0,0,0">
            <HeaderNode startPos="0,0,0" endPos="0,0,0">
              <VariableTable startPos="0,0,0" endPos="0,0,0">
                <NameSlot slot="0" name="result" startPos="0,0,0" endPos="0,0,0"/>
                <NameSlot slot="1" name="element" startPos="2,14,21" endPos="2,21,28"/>
                <NameSlot slot="2" name="xs" startPos="0,0,0" endPos="0,0,0"/>
                <NameSlot slot="3" name="by" startPos="2,38,45" endPos="2,40,47"/>
                <NameSlot slot="4" name="x" startPos="0,0,0" endPos="0,0,0"/>
                <NameSlot slot="5" name="concatBy" startPos="2,5,12" endPos="2,13,20"/>
              </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"/>
            </HeaderNode>
            <PatternMatcherNode startPos="0,0,0" endPos="0,0,0">
              <VariableReferenceNode startPos="3,3,95" endPos="3,10,102"/>
              <EmptyArrayPatternNode startPos="0,0,0" endPos="0,0,0">
                <FunctionNode startPos="4,16,126" endPos="4,22,132">
                  <VariableReferenceNode startPos="4,16,126" endPos="4,22,132"/>
                </FunctionNode>
              </EmptyArrayPatternNode>
              <DeconstructArrayPatternNode startPos="0,0,0" endPos="0,0,0">
                <FunctionNode startPos="5,22,154" endPos="5,57,189">
                  <FunctionParameterNode materialize="false" startPos="0,0,0" endPos="0,0,0">
                    <NameSlot slot="4" name="x" startPos="5,11,143" endPos="5,12,144"/>
                    <TypeNode startPos="0,0,0" endPos="0,0,0"/>
                  </FunctionParameterNode>
                  <FunctionParameterNode materialize="false" startPos="0,0,0" endPos="0,0,0">
                    <NameSlot slot="2" name="xs" startPos="5,15,147" endPos="5,17,149"/>
                    <TypeNode startPos="0,0,0" endPos="0,0,0"/>
                  </FunctionParameterNode>
                  <InlineTailRecFunctionCall startPos="0,0,0" endPos="0,0,0">
                    <VarDirective startPos="0,0,0" endPos="0,0,0">
                      <NameSlot slot="1" name="element" startPos="2,14,21" endPos="2,21,28"/>
                      <VariableReferenceNode startPos="5,31,163" endPos="5,33,165"/>
                    </VarDirective>
                    <VarDirective startPos="0,0,0" endPos="0,0,0">
                      <NameSlot slot="3" name="by" startPos="2,38,45" endPos="2,40,47"/>
                      <VariableReferenceNode startPos="5,35,167" endPos="5,37,169"/>
                    </VarDirective>
                    <VarDirective startPos="0,0,0" endPos="0,0,0">
                      <NameSlot slot="0" name="result" startPos="2,50,57" endPos="2,56,63"/>
                      <FunctionCallNode startPos="5,39,171" endPos="5,56,188"/>
                    </VarDirective>
                  </InlineTailRecFunctionCall>
                </FunctionNode>
              </DeconstructArrayPatternNode>
            </PatternMatcherNode>
          </DoBlockNode>
        </TailRecFunctionBodyNode>
      </FunctionNode>
    </FunctionDirective>
  </HeaderNode>
  <FunctionCallNode startPos="9,1,200" endPos="9,18,217"/>
</AST>