def __init__(self, type_env=None, blocks=None): if type_env is None: type_env = {} self.type_env = type_env if blocks is None: blocks = NestedBlocks() self.blocks = blocks # cut down the number of created nodes by # remembering which tuple variables we've created # and looking up their elements directly self.tuple_elt_cache = {}
def fresh_builder(fn): blocks = NestedBlocks() blocks.push(fn.body) return Builder(type_env = fn.type_env, blocks = blocks)