<?xml version='1.0' encoding='UTF-8'?>
<AST>
  <ImportDirective startPos="0,0,0" endPos="0,0,0">
    <NameSlot slot="0" name="dw::Core" startPos="0,0,0" endPos="0,0,0"/>
  </ImportDirective>
  <FunctionDirective startPos="1,1,0" endPos="10,2,257">
    <NameSlot slot="4" name="every" startPos="1,5,4" endPos="1,10,9"/>
    <StaticFunctionNode startPos="1,68,67" endPos="10,2,257">
      <FunctionParameterNode materialize="true" typeRequiresMaterialize="false" startPos="1,14,13" endPos="1,28,27">
        <NameSlot slot="0" name="list" startPos="1,14,13" endPos="1,18,17"/>
        <LiteralTypeNode startPos="0,0,0" endPos="0,0,0">
          <TypeNode startPos="1,20,19" endPos="1,28,27"/>
        </LiteralTypeNode>
      </FunctionParameterNode>
      <FunctionParameterNode materialize="false" typeRequiresMaterialize="false" startPos="1,30,29" endPos="1,55,54">
        <NameSlot slot="1" name="condition" startPos="1,30,29" endPos="1,39,38"/>
        <LiteralTypeNode startPos="0,0,0" endPos="0,0,0">
          <TypeNode startPos="1,41,40" endPos="1,55,54"/>
        </LiteralTypeNode>
      </FunctionParameterNode>
      <DoBlockNode startPos="1,68,67" endPos="10,2,257">
        <HeaderNode startPos="2,3,74" endPos="5,3,169">
          <VariableTable startPos="0,0,0" endPos="0,0,0">
            <NameSlot slot="0" name="list" startPos="2,24,95" endPos="2,28,99"/>
            <NameSlot slot="1" name="condition" startPos="2,40,111" endPos="2,49,120"/>
            <NameSlot slot="2" name="private_every" startPos="2,7,78" endPos="2,20,91"/>
            <NameSlot slot="3" name="$" startPos="0,0,0" endPos="0,0,0"/>
            <NameSlot slot="4" name="every" startPos="1,5,4" endPos="1,10,9"/>
            <NameSlot slot="5" name="tail" startPos="0,0,0" endPos="0,0,0"/>
            <NameSlot slot="6" name="head" startPos="0,0,0" endPos="0,0,0"/>
            <NameSlot slot="7" name="tailRec" startPos="14,5,265" endPos="14,12,272"/>
          </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="2,3,74" endPos="4,4,166">
            <NameSlot slot="2" name="private_every" startPos="2,7,78" endPos="2,20,91"/>
            <DynamicFunctionNode startPos="2,78,149" endPos="4,4,166">
              <FunctionParameterNode materialize="false" typeRequiresMaterialize="false" startPos="2,24,95" endPos="2,38,109">
                <NameSlot slot="0" name="list" startPos="2,24,95" endPos="2,28,99"/>
                <LiteralTypeNode startPos="0,0,0" endPos="0,0,0">
                  <TypeNode startPos="2,30,101" endPos="2,38,109"/>
                </LiteralTypeNode>
              </FunctionParameterNode>
              <FunctionParameterNode materialize="false" typeRequiresMaterialize="false" startPos="2,40,111" endPos="2,65,136">
                <NameSlot slot="1" name="condition" startPos="2,40,111" endPos="2,49,120"/>
                <LiteralTypeNode startPos="0,0,0" endPos="0,0,0">
                  <TypeNode startPos="2,51,122" endPos="2,65,136"/>
                </LiteralTypeNode>
              </FunctionParameterNode>
              <DoBlockNode startPos="2,78,149" endPos="4,4,166">
                <HeaderNode startPos="0,0,0" endPos="0,0,0">
                  <VariableTable startPos="0,0,0" endPos="0,0,0">
                    <NameSlot slot="0" name="list" startPos="2,24,95" endPos="2,28,99"/>
                    <NameSlot slot="1" name="condition" startPos="2,40,111" endPos="2,49,120"/>
                    <NameSlot slot="2" name="private_every" startPos="2,7,78" endPos="2,20,91"/>
                    <NameSlot slot="3" name="$" startPos="0,0,0" endPos="0,0,0"/>
                    <NameSlot slot="4" name="every" startPos="1,5,4" endPos="1,10,9"/>
                    <NameSlot slot="5" name="tail" startPos="0,0,0" endPos="0,0,0"/>
                    <NameSlot slot="6" name="head" startPos="0,0,0" endPos="0,0,0"/>
                    <NameSlot slot="7" name="tailRec" startPos="14,5,265" endPos="14,12,272"/>
                  </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>
                <BooleanNode startPos="3,5,158" endPos="3,9,162">true</BooleanNode>
              </DoBlockNode>
            </DynamicFunctionNode>
          </FunctionDirective>
        </HeaderNode>
        <PatternMatcherNode startPos="6,3,175" endPos="9,4,255">
          <VariableReferenceNode startPos="6,3,175" endPos="6,7,179"/>
          <EmptyArrayPatternNode startPos="7,10,197" endPos="7,21,208">
            <DynamicFunctionNode startPos="7,16,203" endPos="7,21,208">
              <BooleanNode startPos="7,16,203" endPos="7,21,208">false</BooleanNode>
            </DynamicFunctionNode>
          </EmptyArrayPatternNode>
          <DefaultPatternNode startPos="8,5,213" endPos="8,43,251">
            <DynamicFunctionNode startPos="8,13,221" endPos="8,43,251">
              <FunctionParameterNode materialize="false" typeRequiresMaterialize="false" startPos="0,0,0" endPos="0,0,0">
                <NameSlot slot="3" name="$" startPos="0,0,0" endPos="0,0,0"/>
                <TypeNode startPos="0,0,0" endPos="0,0,0"/>
              </FunctionParameterNode>
              <FunctionCallNode startPos="8,13,221" endPos="8,43,251">
                <VariableReferenceNode startPos="8,13,221" endPos="8,26,234"/>
                <VariableReferenceNode startPos="8,27,235" endPos="8,31,239"/>
                <VariableReferenceNode startPos="8,33,241" endPos="8,42,250"/>
              </FunctionCallNode>
            </DynamicFunctionNode>
          </DefaultPatternNode>
        </PatternMatcherNode>
      </DoBlockNode>
    </StaticFunctionNode>
  </FunctionDirective>
  <FunctionDirective startPos="14,1,261" endPos="30,2,682">
    <NameSlot slot="7" name="tailRec" startPos="14,5,265" endPos="14,12,272"/>
    <StaticFunctionNode startPos="14,70,330" endPos="30,2,682">
      <FunctionParameterNode materialize="true" typeRequiresMaterialize="false" startPos="14,16,276" endPos="14,30,290">
        <NameSlot slot="0" name="list" startPos="14,16,276" endPos="14,20,280"/>
        <LiteralTypeNode startPos="0,0,0" endPos="0,0,0">
          <TypeNode startPos="14,22,282" endPos="14,30,290"/>
        </LiteralTypeNode>
      </FunctionParameterNode>
      <FunctionParameterNode materialize="false" typeRequiresMaterialize="false" startPos="14,32,292" endPos="14,57,317">
        <NameSlot slot="1" name="condition" startPos="14,32,292" endPos="14,41,301"/>
        <LiteralTypeNode startPos="0,0,0" endPos="0,0,0">
          <TypeNode startPos="14,43,303" endPos="14,57,317"/>
        </LiteralTypeNode>
      </FunctionParameterNode>
      <DoBlockNode startPos="14,70,330" endPos="30,2,682">
        <HeaderNode startPos="15,3,337" endPos="25,3,594">
          <VariableTable startPos="0,0,0" endPos="0,0,0">
            <NameSlot slot="0" name="list" startPos="2,24,95" endPos="2,28,99"/>
            <NameSlot slot="1" name="condition" startPos="2,40,111" endPos="2,49,120"/>
            <NameSlot slot="2" name="private_every" startPos="2,7,78" endPos="2,20,91"/>
            <NameSlot slot="3" name="$" startPos="0,0,0" endPos="0,0,0"/>
            <NameSlot slot="4" name="every" startPos="1,5,4" endPos="1,10,9"/>
            <NameSlot slot="5" name="tail" startPos="0,0,0" endPos="0,0,0"/>
            <NameSlot slot="6" name="head" startPos="0,0,0" endPos="0,0,0"/>
            <NameSlot slot="7" name="tailRec" startPos="14,5,265" endPos="14,12,272"/>
          </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="15,3,337" endPos="24,4,591">
            <NameSlot slot="2" name="private_every" startPos="15,7,341" endPos="15,20,354"/>
            <DynamicFunctionNode startPos="0,0,0" endPos="0,0,0">
              <FunctionParameterNode materialize="false" typeRequiresMaterialize="false" startPos="15,24,358" endPos="15,38,372">
                <NameSlot slot="0" name="list" startPos="15,24,358" endPos="15,28,362"/>
                <LiteralTypeNode startPos="0,0,0" endPos="0,0,0">
                  <TypeNode startPos="15,30,364" endPos="15,38,372"/>
                </LiteralTypeNode>
              </FunctionParameterNode>
              <FunctionParameterNode materialize="true" typeRequiresMaterialize="false" startPos="15,40,374" endPos="15,65,399">
                <NameSlot slot="1" name="condition" startPos="15,40,374" endPos="15,49,383"/>
                <LiteralTypeNode startPos="0,0,0" endPos="0,0,0">
                  <TypeNode startPos="15,51,385" endPos="15,65,399"/>
                </LiteralTypeNode>
              </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="list" startPos="2,24,95" endPos="2,28,99"/>
                      <NameSlot slot="1" name="condition" startPos="2,40,111" endPos="2,49,120"/>
                      <NameSlot slot="2" name="private_every" startPos="2,7,78" endPos="2,20,91"/>
                      <NameSlot slot="3" name="$" startPos="0,0,0" endPos="0,0,0"/>
                      <NameSlot slot="4" name="every" startPos="1,5,4" endPos="1,10,9"/>
                      <NameSlot slot="5" name="tail" startPos="0,0,0" endPos="0,0,0"/>
                      <NameSlot slot="6" name="head" startPos="0,0,0" endPos="0,0,0"/>
                      <NameSlot slot="7" name="tailRec" startPos="14,5,265" endPos="14,12,272"/>
                    </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="16,5,421" endPos="16,9,425"/>
                    <EmptyArrayPatternNode startPos="0,0,0" endPos="0,0,0">
                      <DynamicFunctionNode startPos="17,18,451" endPos="17,22,455">
                        <BooleanNode startPos="17,18,451" endPos="17,22,455">true</BooleanNode>
                      </DynamicFunctionNode>
                    </EmptyArrayPatternNode>
                    <DeconstructArrayPatternNode startPos="0,0,0" endPos="0,0,0">
                      <DynamicFunctionNode startPos="19,9,492" endPos="22,16,581">
                        <FunctionParameterNode materialize="false" typeRequiresMaterialize="false" startPos="0,0,0" endPos="0,0,0">
                          <NameSlot slot="6" name="head" startPos="18,13,468" endPos="18,17,472"/>
                          <TypeNode startPos="0,0,0" endPos="0,0,0"/>
                        </FunctionParameterNode>
                        <FunctionParameterNode materialize="false" typeRequiresMaterialize="false" startPos="0,0,0" endPos="0,0,0">
                          <NameSlot slot="5" name="tail" startPos="18,20,475" endPos="18,24,479"/>
                          <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="0" name="list" startPos="15,24,358" endPos="15,28,362"/>
                              <VariableReferenceNode startPos="20,25,536" endPos="20,29,540"/>
                            </VarDirective>
                            <VarDirective startPos="0,0,0" endPos="0,0,0">
                              <NameSlot slot="1" name="condition" startPos="15,40,374" endPos="15,49,383"/>
                              <VariableReferenceNode startPos="20,31,542" endPos="20,40,551"/>
                            </VarDirective>
                          </InlineTailRecFunctionCall>
                          <FunctionCallNode startPos="19,12,495" endPos="19,27,510">
                            <VariableReferenceNode startPos="19,12,495" endPos="19,21,504"/>
                            <VariableReferenceNode startPos="19,22,505" endPos="19,26,509"/>
                          </FunctionCallNode>
                          <BooleanNode startPos="22,11,576" endPos="22,16,581">false</BooleanNode>
                        </IfNode>
                      </DynamicFunctionNode>
                    </DeconstructArrayPatternNode>
                  </PatternMatcherNode>
                </DoBlockNode>
              </TailRecFunctionBodyNode>
            </DynamicFunctionNode>
          </FunctionDirective>
        </HeaderNode>
        <PatternMatcherNode startPos="26,3,600" endPos="29,4,680">
          <VariableReferenceNode startPos="26,3,600" endPos="26,7,604"/>
          <EmptyArrayPatternNode startPos="27,10,622" endPos="27,21,633">
            <DynamicFunctionNode startPos="27,16,628" endPos="27,21,633">
              <BooleanNode startPos="27,16,628" endPos="27,21,633">false</BooleanNode>
            </DynamicFunctionNode>
          </EmptyArrayPatternNode>
          <DefaultPatternNode startPos="28,5,638" endPos="28,43,676">
            <DynamicFunctionNode startPos="28,13,646" endPos="28,43,676">
              <FunctionParameterNode materialize="false" typeRequiresMaterialize="false" startPos="0,0,0" endPos="0,0,0">
                <NameSlot slot="3" name="$" startPos="0,0,0" endPos="0,0,0"/>
                <TypeNode startPos="0,0,0" endPos="0,0,0"/>
              </FunctionParameterNode>
              <FunctionCallNode startPos="28,13,646" endPos="28,43,676">
                <VariableReferenceNode startPos="28,13,646" endPos="28,26,659"/>
                <VariableReferenceNode startPos="28,27,660" endPos="28,31,664"/>
                <VariableReferenceNode startPos="28,33,666" endPos="28,42,675"/>
              </FunctionCallNode>
            </DynamicFunctionNode>
          </DefaultPatternNode>
        </PatternMatcherNode>
      </DoBlockNode>
    </StaticFunctionNode>
  </FunctionDirective>
  <VariableTable startPos="0,0,0" endPos="0,0,0">
    <NameSlot slot="0" name="list" startPos="2,24,95" endPos="2,28,99"/>
    <NameSlot slot="1" name="condition" startPos="2,40,111" endPos="2,49,120"/>
    <NameSlot slot="2" name="private_every" startPos="2,7,78" endPos="2,20,91"/>
    <NameSlot slot="3" name="$" startPos="0,0,0" endPos="0,0,0"/>
    <NameSlot slot="4" name="every" startPos="1,5,4" endPos="1,10,9"/>
    <NameSlot slot="5" name="tail" startPos="0,0,0" endPos="0,0,0"/>
    <NameSlot slot="6" name="head" startPos="0,0,0" endPos="0,0,0"/>
    <NameSlot slot="7" name="tailRec" startPos="14,5,265" endPos="14,12,272"/>
  </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>
</AST>