function createCompiler(output) {
  return (context, expression, type) => {
    const length = expression.args.length;
    const args = new Array(length);
    for (let i = 0; i < length; ++i) {
      args[i] = compile(expression.args[i], type, context);
    }
    return output(args, context);
  };
}
@param {function(Array<CompiledExpression>, CompilationContext): string} output Function that takes in parsed arguments and returns a string
@return {function(CompilationContext, import("./expression.js").CallExpression, number): string} Compiler for the call expression