@typecheck_method(virtual_ir=IR, temp_vars=sequenceof(str), join_exprs=sequenceof(anytype), join_func=func_spec(1, anytype))
def __init__(self, virtual_ir, temp_vars, join_exprs, join_func):
    super(Join, self).__init__(*(e._ir for e in join_exprs))
    self.virtual_ir = virtual_ir
    self.temp_vars = temp_vars
    self.join_exprs = join_exprs
    self.join_func = join_func
    self.idx = Join._idx
    Join._idx += 1
@typecheck_method(virtual_ir=IR, temp_vars=sequenceof(str), join_exprs=sequenceof(anytype), join_func=func_spec(1, anytype))
def __init__(self, virtual_ir, temp_vars, join_exprs, join_func):
    super(Join, self).__init__(*(e._ir for e in join_exprs))
    self.virtual_ir = virtual_ir
    self.temp_vars = temp_vars
    self.join_exprs = join_exprs
    self.join_func = join_func
    self.idx = Join._idx
    Join._idx += 1