/* array <- #{ new <- { length <- 0 #{ each <- :fun { repeat: length :idx { fun: idx (get: idx) } } } } } */ true <- #{ if:else <- :self trueblock :elseblock { trueblock: } } false <- #{ if:else <- :self trueblock :elseblock { elseblock: } } filter <- :arr pred { output <- arr slice: 0 0 each: arr :idx el { if: (pred: el) { output push: el } else: {} } output }